【问题标题】:Print a bar chart with different dataframes打印具有不同数据框的条形图
【发布时间】:2021-02-14 04:20:08
【问题描述】:

如您所见,我有三个数据框。

我打印了有关值的所有信息,其中:

print("Amount of cardids " , df_x['Carid'].nunique())
print("Amount of carnames " , df_x['Carname'].nunique())
print("Amount of models" , df_x['model'].nunique())

现在我想将它们打印成条形图。

如您所见,我想在一个条形图中打印所有数据框,您可以看到字段的数量。

d_1 = {'Carid ': [1, 2, 3], 'Carname': ['Mercedes-Benz', 'Audi', 'BMW'], 'model': ['S-Klasse AMG 63s', 'S6', 'X6 M-Power']}
df_1 = pd.DataFrame(data=d_1)
print(df_1.head())

d_2 = {'Carid ': [1, 2, 4], 'Carname': ['Mercedes-Benz', 'Audi', 'VW'], 'model': ['S-Klasse AMG 63s', 'S6', 'GTI']}
df_2 = pd.DataFrame(data=d_2)
print(df_2.head())

d_3 = {'Carid ': [1, 3, 8], 'Carname': ['Mercedes-Benz', 'VW', 'Opel'], 'model': ['S-Klasse AMG 63s', 'GTD', 'Corsa']}
df_3 = pd.DataFrame(data=d_!)
print(df_3.head())

如何打印包含所有三个数据框的条形图并调用金额?

【问题讨论】:

标签: python pandas matplotlib charts


【解决方案1】:

您可以尝试使用 matplotlib bar 函数。代码如下:

carids = [df_1['Carid'].nunique(), df_2['Carid'].nunique(), df_3['Carid'].nunique()]
carname = [df_1['Carname'].nunique(), df_2['Carname'].nunique(), df_3['Carname'].nunique()]
models = [df_1['model'].nunique(), df_2['model'].nunique(), df_3['model'].nunique()]

labels = ["df_1", "df_2", "df_3"]
width = 0.05
x = np.arange(len(labels))

fig, ax = plt.subplots()
rects1 = ax.bar(x - width, carids, width, label='Carid')
rects2 = ax.bar(x, carname, width, label='Carname')
rects3 = ax.bar(x + width, models, width, label='model')

ax.set_ylabel('Count')
# ax.set_title('')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()

fig.tight_layout()
plt.show()

这里的caridscarnamemodels 是包含需要绘制的数据的列表。标签是图表的xtick labels,您可以调整宽度以适当放置条形。

得到的图如下:

【讨论】:

  • 很高兴它有帮助! :)
猜你喜欢
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
  • 1970-01-01
相关资源
最近更新 更多