【发布时间】:2019-03-12 06:41:21
【问题描述】:
我从我的数据框中提取了X 和Y,如下所示:
X 是 UInt64Index([19, 35, 29, 10, 5, 9, 45, 72, 3, 18], dtype='uint64')
而Y 是array([14336, 6812, 4265, 3857, 2960, 1986, 1730, 1233, 1128, 841])。
现在我想使用sns.barplot 来绘制X 与Y 的对比。这意味着在情节中我必须看到,例如X=19 在Y 中具有最高的相关值,即14336。
当我使用时
ax=sns.barplot(X, Y)
# add the values of each x index on the bars in the barplot
for p, q in zip(ax.patches, Y):
ax.text(p.get_x()+p.get_width()/2.,
p.get_height()*(1.01),
"{}".format(q),
ha = 'center'
)
不幸的是,我看到了不同的价值观!显然sns.barplot 对X 进行排序(从小到大的值),但是它不会改变Y 中的相关值。
有没有人有办法解决这个问题?
谢谢!
【问题讨论】:
-
您能否在您的问题中提供所需的行为、特定问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。”
-
您好,Artem。我已经添加了完整的代码。从图中可以看出,19(在 x 轴上)具有最高值(条形最大),但是,条形上方的值是 1986(而不是 14336)。另一个例子是 X=18(这是 X 的最后一个数字)对应的值是 841(在 Y 数组中),但是,在图中是 2960。(实际上,841 现在考虑 X 轴上 72 的对应值.)
-
谢谢,点赞。
标签: python matplotlib bar-chart seaborn