下面是我的数据结构:
data = {'2013': {1:25,2:81,3:15}, '2014': {1:28, 2:65, 3:75}, '2015': {1:78,2:91,3:86 }}
我的x轴是数字[1,2,3]y轴是每个数字的数量。例如:2013年,x轴为1,其数量为25。打印每年的每个图表我想绘制一个条形图,它使用matplotlib和图例。
[1,2,3]
1
25
qyswt5oh1#
import matplotlib.pyplot as plt import pandas as pd data = {'2013': {1:25,2:81,3:15}, '2014': {1:28, 2:65, 3:75}, '2015': {1:78,2:91,3:86 }} df = pd.DataFrame(data) df.plot(kind='bar') plt.show()
我喜欢Pandas,因为它不需要对数据做任何操作就可以获取数据并绘制出来。
0sgqnhkj2#
您可以通过dict.keys()访问字典的键,通过dict.values()访问字典的值如果你想绘制2013年的数据,你可以这样做:
dict.keys()
dict.values()
import matplotlib.pyplot as pl x_13 = data['2013'].keys() y_13 = data['2013'].values() pl.bar(x_13, y_13, label = '2013') pl.legend()
这样就可以了。更优雅的是,do可以简单地do:
year = '2013' pl.bar(data[year].keys(), data[year].values(), label=year)
这样你就可以循环播放了
for year in ['2013','2014','2015']: pl.bar(data[year].keys(), data[year].values(), label=year)
c7rzv4ha3#
你可以用几种方法来做到这一点。
data = {'2013': {1: 25, 2: 81, 3: 15}, '2014': {1: 28, 2: 65, 3: 75}, '2015': {1: 78, 2: 91, 3: 86}} df = pd.DataFrame(data) X_axis = np.arange(len(df)) plt.bar(X_axis - 0.1,height=df["2013"], label='2013',width=.1) plt.bar(X_axis, height=df["2014"], label='2014',width=.1) plt.bar(X_axis + 0.1, height=df["2015"], label='2015',width=.1) plt.legend() plt.show()
更多信息here。
data = {'2013': {1: 25, 2: 81, 3: 15}, '2014': {1: 28, 2: 65, 3: 75}, '2015': {1: 78, 2: 91, 3: 86}} df = pd.DataFrame(data) fig= plt.figure() axes = fig.add_axes([.1,.1,.8,.8]) X_axis = np.arange(len(df)) axes.bar(X_axis -.25,df["2013"], color ='b', width=.25) axes.bar(X_axis,df["2014"], color ='r', width=.25) axes.bar(X_axis +.25,df["2015"], color ='g', width=.25)
3条答案
按热度按时间qyswt5oh1#
我喜欢Pandas,因为它不需要对数据做任何操作就可以获取数据并绘制出来。
0sgqnhkj2#
您可以通过
dict.keys()
访问字典的键,通过dict.values()
访问字典的值如果你想绘制2013年的数据,你可以这样做:
这样就可以了。更优雅的是,do可以简单地do:
这样你就可以循环播放了
c7rzv4ha3#
你可以用几种方法来做到这一点。
使用bar()的 * 函数 * 方式:
更多信息here。
使用figure()的 * 面向对象 * 方式: