堆积条形图如何更改x轴的刻度值?

3

问题:

如果我选择plot选项stacked = False,我会得到正确的数据x轴输出。

false stacked

然而,当我使用stacked = True时,我得到的输出是不正确的,显示了更高(错误的)值在x轴上。除了stacked选项外,没有任何其他变化。

enter image description here

我错过了什么明显的东西吗?

数据

DataFrame.to_dict()输出在这里

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

cols = ['OpenToLast','OpenToMaxHigh','OpenToMaxLow']
colors = {'OpenToLast':'b', 'OpenToMaxHigh' : '#CCD1F5', 'OpenToMaxLow': '#C6DAF4'}


axnum = auction[cols].plot(kind='barh',
                        figsize=(6,8),   
                        fontsize=9,
                        color=[colors[i] for i in cols],
                        edgecolor = "none",   
                        stacked = False,  
                        legend = True)

axnum.xaxis.set_major_locator(ticker.MultipleLocator(5))
plt.axvline(0, color='B')

1
堆叠图将各个条形图相互堆叠,而不是重叠数据。例如,您在2016-12-16的最高值为25(开盘到最后),30(开盘到最高点),在堆叠图中为25和30堆叠在一起,总和为55。 - Vaishali
1
@VaishaliGarg 请把你的评论转化为答案。 - Zeugma
2个回答

3

堆积图将各个条形图层叠在一起,而不是重叠数据。例如,您在2016-12-16的最高值为25(开盘到最后)和30(开盘到最高),在堆积图中,它们被叠加在一起,成为55。


非常整洁的答案! - MaxU - stand with Ukraine
谢谢。那么没有办法保持stacked=True的可视化外观和stacked=False的x值吗? - nipy
类似这样的吗?https://dev59.com/gpXfa4cB1Zd3GeqPd15a - Vaishali

2

它们实际上并不更高,只是堆叠在一起。

例如,在您的第一个图表中,您的顶部条形图2016-12-16 11:30:00 - OpenToLast值为25,OpenToMaxHigh值为31。

但是当stacked=True时,它们仍然具有相同的值,但是它们是相对于彼此的。虽然OpenToLast仍然是25,但是您的OpenToMaxHigh值看起来好像从0到56,但实际上它是从OpenToLast结束的地方开始的:即它从25到56,这是它的正确值(31)。

我认为这可能是您忽略的“显而易见”的事情,仅供参考。


嗨,是的,我漏掉了显而易见的事情。+1 谢谢。 - nipy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接