【发布时间】:2015-02-21 18:49:18
【问题描述】:
所以我有一些数据要在 matplotlib 中绘制。所以我的数据有一些我试图绘制的变量。我想要做的是为每个位置制作一个子图,每个子图都有多个组,我想显示值如何随时间变化。我的数据的一个例子是:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import random
df = pd.DataFrame({
"GEO": [1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3],
"year": [2010,2011,2010,2011,2010,2011,2010,2011,2010,2011,2010,2011,2010,2011,2010,2011,2010,2011],
"GROUP": ['doctor','doctor','Knight','Knight','Wizard','Wizard','doctor','doctor','Knight','Knight','Wizard','Wizard','doctor','doctor','Knight','Knight','Wizard','Wizard'],
"Value": random.sample(xrange(100), 18)
})
provs = df["GEO"].unique()
f, axarr = plt.subplots(len(provs), sharex=True, sharey=True)
myplot = 0
for prov in provs:
groups = df.loc[df["GEO"] == prov, "GROUP"].unique()
axarr[myplot].set_title(prov)
for group in groups:
x = df.loc[(df["GEO"] == prov) & (df["GROUP"] == group), "year"].tolist()
y = df.loc[(df["GEO"] == prov) & (df["GROUP"] == group), "Value"].tolist()
axarr[myplot].plot(x, y, label=group)
myplot = myplot + 1
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.xlabel('Year')
plt.ylabel('Amount in $')
plt.xlim(2010, 2011)
plt.show()
所以我遇到的问题
1) 尝试将 X 轴设置为显示年份(如 2010 年和 2011 年)而不是 0 - 1
2) 试图让我的图例和轴标签居中(对于子图,这肯定是错误的)。
【问题讨论】:
-
我不太清楚您对图例的问题,无法回答该部分。你希望它看起来像什么?
标签: python matplotlib plot