2017-01-26 75 views
3

问:堆积条形图改变x轴的情节号值

如果我选择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') 
+1

堆积图将单个条块堆叠在顶部而不是重叠数据。例如,2016-12-16您的最高值是25(开到最后),30(从最高开到最高),在堆积图中是25和30堆叠在一起55 – Vaishali

+1

@VaishaliGarg,请将您的评论转换为答案。 – Boud

回答

3

堆积图将单个条块堆叠在彼此的顶部,而不是重叠数据。例如,2016-12-16期间您的最高值是25(开到最后),30(从最高开始到最高),其中堆积图是25和30堆叠在一起55

+0

非常整洁的答案! – MaxU

+0

谢谢你的鼓励:) – Vaishali

+0

谢谢。所以没有办法保持'stacked = True'的视觉外观和'stacked = False' x值? – ade1e

2

他们实际上并不高,他们只是堆放在彼此的顶部。

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

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

我认为这可能是你错过的“明显”的事情,只是我的两分钱。

+0

嗨,是的,这是我失踪的显而易见的事情。 +1谢谢 – ade1e