我正在尝试在箱形图内执行散点图作为子图。当我仅用一个箱形图进行工作时,它就可以工作。我可以在箱图内定义具有特定颜色的特定点。与箱形图的值相比,绿色的球(图1)代表一个特定的数字。
for columnName in data_num.columns:
plt.figure(figsize=(2, 2), dpi=100)
bp = data_num.boxplot(column=columnName, grid=False)
y = S[columnName]
x = columnName
if y > data_num[columnName].describe().iloc[5]:
plt.plot(1, y, 'r.', alpha=0.7,color='green',markersize=12)
count_G = count_G + 1
elif y < data_num[columnName].describe().iloc[5]:
plt.plot(1, y, 'r.', alpha=0.7,color='red',markersize=12)
count_L = count_L + 1
else:
plt.plot(1, y, 'r.', alpha=0.7,color='yellow',markersize=12)
count_E = count_E + 1
图片1-散点图+ 1箱图
我可以使用箱线图创建子图。
fig, axes = plt.subplots(6,10,figsize=(16,16)) # create figure and axes
fig.subplots_adjust(hspace=0.6, wspace=1)
for j,columnName in enumerate(list(data_num.columns.values)[:-1]):
bp = data_num.boxplot(columnName,ax=axes.flatten()[j])
图片2-子图+箱图
但是,当我尝试在每个箱形图中绘制一个特定的数字时,实际上它会订阅整个图。
plt.subplot(6,10,j+1)
if y > data_num[columnName].describe().iloc[5]:
plt.plot(1, y, 'r.', alpha=0.7,color='green',markersize=12)
count_G = count_G + 1
elif y < data_num[columnName].describe().iloc[5]:
plt.plot(1, y, 'r.', alpha=0.7,color='red',markersize=12)
count_L = count_L + 1
else:
plt.plot(1, y, 'r.', alpha=0.7,color='black',markersize=12)
count_E = count_E + 1
图片3-子图+散点图
答案 0 :(得分:1)
目前尚不清楚到底出了什么问题。对function saveUserPass(credentials){
if (typeof Android !== 'undefined') {
if (Android.saveValues !== 'undefined') {
Android.saveValues(credentials.username, credentials.password);
}
}
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
if (iOS) {
window.webkit.messageHandlers.saveValeus.postMessage({"name": credentials.username,"pwd": credentials.password});
}
}
}
的调用可能正在擦除某些内容。但是,对于现代标准的matplotlib来说,这样的调用不是必需的,其中通过plt.subplot(6,10,j+1)
创建了子图。请小心使用fig, axes = plt.subplots()
而不是ax.plot()
。 plt.plot()
在“当前”轴上绘图,当有很多子图时,这可能会造成混淆。
下面的示例代码首先创建了一些玩具数据(希望与问题中的数据相似)。然后,将方框图和各个点画成一个循环。为避免重复,计数和颜色存储在词典中。由于plt.plot()
似乎是中位数,因此出于可读性考虑,代码直接计算了该中位数。
data_num[columnName].describe().iloc[5]