堆积条形图更改x轴绘图数字值

2024-06-06 14:46:31 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:

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

false stacked

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

enter image description here

我是不是遗漏了一些明显的东西?在

数据

DataFrame.to_dict()输出here

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')

Tags: 数据importfalsetrueplotmatplotlibas选项
2条回答

堆积图将各个条形图堆叠在一起,而不是重叠数据。例如,您在2016-12-16的最高值是25(开放到最后),30(开放到最大高度),在堆叠图中是25和30堆叠在一起,在55

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

例如,在第一个图中,顶栏2016-12-16 11:30:00值为25,OpenToMaxHigh值为31。在

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

我想那可能是你错过的“显而易见”的东西,只是我的两分钱。在

相关问题 更多 >