首页 > 解决方案 > 如何使用 matplotlib 绘制条形图,“x”在名称中有值和“y”

问题描述

id,name,group,year,value
5827 Tokyo Asia 1800 685.000000 
864 Bijapur India 1649 340.000000 
1952 Hangzhou Asia 1661 283.612500 
769 Berlin Europe 1922 3873.090909 
3709 Mumbai India 1979 8342.800000 

我的数据集在上面。如何在 y 轴上绘制带有名称并在 x 轴上显示值的条形图 必须出现显示名称

伪代码 `df3 = df(data=df['value'], index=df['name'])

我可以用

ax = df2.plot.bar( y='value', x='name')

但如何绘制ax = df2.plot.bar( x='value', y='name')

标签: matplotlib

解决方案


您想要的输出似乎是带有水平条的图表。它在熊猫中被称为“barh”

一个例子:

import pandas as pd
from matplotlib import pyplot as plt

df = pd.DataFrame(columns=['id', 'name', 'group', 'year', 'value'],
                  data=[[5827, 'Tokyo', 'Asia', 1800, 685.000000],
                        [864, 'Bijapur', 'India', 1649, 340.000000],
                        [1952, 'Hangzhou', 'Asia', 1661, 283.612500],
                        [769, 'Berlin', 'Europe', 1922, 3873.090909],
                        [3709, 'Mumbai', 'India', 1979, 8342.800000]])
df.plot(kind='barh', y='value', x='name', color='crimson')
plt.tight_layout()
plt.show()

示例图


推荐阅读