使用matplotlib绘制唯一日期

时间:2016-04-26 11:03:59

标签: python matplotlib

我有date = '2015-12-12'和相应的y = [0 - 100]以及date = '2015-03-12'y = [0 - 431]等数据。如何针对y列绘制每个唯一日期的条形图,并使用每个日期值标记x列。我还需要在间隔中切换y值并将它们显示为不同的颜色。我怎样才能做到这一点。任何如何做到这一点的例子。理想情况下,我希望有一个看起来像的图表 Example graph

我试图得到一个例子,以便我可以针对单个日期绘制单个条形图。我能做的颜色很好。

import numpy as np    
import matplotlib.pyplot as plt    
import datetime
x = '2015-12-12'   
y = [74, 52, 41, 31, 18, 18, 14, 14, 14, 14, 12,0]    
y_values = [y_val for (y_val) in y ]    
ax = plt.subplot(111)    
barWidth=20    
ax.bar(x,y_values, width=barWidth, align='center')    

ax.xaxis_date()   

1 个答案:

答案 0 :(得分:0)

您不需要将y值定义为范围,每个日期(表示高度)的单个数字都可以。所以你将拥有你的x数组,即日期字符串和y数组,这是高度。

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

x = ['2015-12-12', '2015-12-13', '2015-12-14', '2015-12-15', 
     '2015-12-16', '2015-12-17', '2015-12-18', '2015-12-19']
y = [74, 52, 41, 31, 65, 57, 22, 15]
ax = plt.subplot(111)
ax.xaxis_date()
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
ax.bar(x, y, width=1, align='center')
plt.xticks(rotation=50)
plt.show()