我的数据集是一个包含6个数字的列表:[23948.30, 23946.20, 23961.20, 23971.70, 23956.30, 23987.30]
我希望它们位于x轴上的水平框图中,23855
和24472
作为x轴的限制,因此框图将位于x轴的中间位置这条线。如果无法做到这一点,至少要在其下面显示x轴,并且非常接近盒子图。
我还希望方框图显示平均数。
现在我只能获得水平框图,我也希望x轴显示整数而不是“xx + 2.394e”。
现在是我的代码:
def box_plot(circ_list, wear_limit):
print circ_list
print wear_limit
fig1 = plt.figure()
plt.boxplot(circ_list, 0, 'rs', 0)
plt.show()
答案 0 :(得分:1)
我不确定我是否理解了帖子中的所有内容,但这是我对您的代码的更正:
l = [23948.30, 23946.20, 23961.20, 23971.70, 23956.30, 23987.30]
def box_plot(circ_list):
fig, ax = plt.subplots()
plt.boxplot(circ_list, 0, 'rs', 0, showmeans=True)
plt.ylim((0.75, 1.25))
ax.set_yticks([])
labels = ["{}".format(int(i)) for i in ax.get_xticks()]
ax.set_xticklabels(labels)
plt.show()
box_plot(l)
结果:
现在您的请求细分以及代码如何与它们对应:
showmeans=True
的简单添加。plt.ylim()
将y轴重新调整为0.75和1.25之间。如果你想绘制更接近x轴的箱线图(例如,通过将0.75更改为0.9),或者从箱图中进一步绘制图的顶部(例如,将1.25更改为1.5),则可以调整这些数字。我还使用plt.set_ticks([])
消除了使用更清洁的yticks。ax.set_xticklabels()
函数将其应用回来。如果它符合您的要求,请告诉我,并告诉您快乐的matplotlib;)。