我有从this直方图获得的麻疹病例数据。我想为我正在撰写的论文重新创建这个情节。
我使用pandas
加载数据。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('measles_data.csv')
df['Date'] = df['Date'].apply( lambda x: datetime.datetime.strptime( j, "%Y-%m-%d")
df.set_index('Date', inplace = True)
df.hist()
plt.show()
这不会产生像链接图片那样格式化的x轴。
我也尝试过与
相似的东西x = [j.day() for j in df.Date]
y = df['Confirmed Cases'].as_matrix()
ax.bar(x,y)
ax.xaxis_date()
但我无法区分月份的开始和结束时间。有人可以推荐一种格式化x轴的方法,类似于我链接的图片吗?
答案 0 :(得分:0)
我真的不知道任何能做这种事情的命令或设置。所以我在matplotlib中使用了乳胶作为文本框,这样我就可以将它放在我想要的任何地方。
import datetime
import random
import matplotlib.pyplot as plt
from matplotlib import rc
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
rc('text', usetex=True)
date1 = datetime.date(2003, 1, 5)
date2 = datetime.date(2003, 3, 1)
x = [date1, date2]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]
fig, ax = plt.subplots(1)
textstr = r"$\overbrace{}^{Sometext}"
ax.text(0.1, 0.1, textstr, transform=ax.transAxes, fontsize=20,
verticalalignment='top')
plt.plot(x, y)
plt.gcf().autofmt_xdate()
plt.show()
输出是:
我不知道怎么做"一月,二月,......" xlabel中的子部分。如果它很重要,你可以稍后用photoshop添加它:D希望这有帮助!