打印具有不同数据框的条形图

时间:2020-11-01 08:05:09

标签: python pandas matplotlib charts

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

我使用以下命令打印了有关值的所有信息:

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

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

Bar chat

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

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())

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

1 个答案:

答案 0 :(得分:0)

您可以尝试使用matplotlib栏功能。代码如下:

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,您可以调整宽度以适当放置条形图。

获得的图形如下:

Image

相关问题