【发布时间】:2018-01-05 17:51:34
【问题描述】:
我用自定义的 x 轴制作了如下时间序列图:
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
df = pd.DataFrame({'points': np.random.randint(1,100, 61)},
index=pd.date_range(start='11-1-2017', end='12-31-2017', freq='D'))
df['dow'] = df.index.dayofweek
fig, ax = plt.subplots();
ax.plot_date(df.index, df.points, '-o')
ax.xaxis.set_minor_locator(mdates.WeekdayLocator(byweekday=(0), interval=1))
ax.xaxis.set_minor_formatter(mdates.DateFormatter('%d\n%a'))
ax.xaxis.grid(True, which="minor")
ax.yaxis.grid()
ax.xaxis.set_major_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('\n\n\n%b\n%Y'))
情节是这样的:
我真正想要的是让标记颜色在一周中的每一天(周一,周二...)都不同,所以我修改了上面的代码:
colors = dict(zip(df.dow.unique(), ['orange', 'yellow', 'green', 'blue', 'purple', 'black', 'red']))
ax.plot_date(df.index, df.points, '-o', color=df['dow'].apply(lambda x: colors[x]))
但结果是
ValueError: RGBA 参数无效
如果有人有解决方案,不胜感激!
【问题讨论】:
标签: python pandas matplotlib timeserieschart