Pandas:如何创建条形图来可视化前 10 个值


您可以使用以下基本语法在 pandas 中创建条形图,其中仅包含特定列中最常见的 10 个值:

 import pandas as pd
import matplotlib. pyplot as plt

#find values with top 10 occurrences in 'my_column'
top_10 = (df[' my_column ']. value_counts ()). iloc [:10]

#create bar chart to visualize top 10 values
top_10. plot (kind='bar')

以下示例展示了如何在实践中使用此语法。

示例:在 Pandas 中创建条形图以可视化前 10 个值

假设我们有以下 pandas DataFrame,其中包含有关球队名称和 500 名不同篮球运动员得分的信息:

 import pandas as pd
import numpy as np
from string import ascii_uppercase
import random
from random import choice

#make this example reproducible
random. seeds (1)
n.p. random . seeds (1)

#createDataFrame
df = pd. DataFrame ({' team ': [choice(ascii_uppercase) for _ in range(500)],
                   ' points ': np. random . uniform (0, 20, 500)})

#view first five rows of DataFrame
print ( df.head ())

  team points
0 E 8.340440
1 S 14.406490
2 Z 0.002287
3 Y 6.046651
4 C 2.935118

我们可以使用以下语法创建一个条形图,显示团队列中出现频率最高的 10 个值:

 import matplotlib. pyplot as plt

#find teams with top 10 occurrences
top_10_teams = (df[' team ']. value_counts ()).[:10]

#create bar chart of top 10 teams
top_10_teams. plot (kind=' bar ') 

条形图仅包含 10 个最常出现的团队的名称。

x 轴显示团队名称,y 轴显示频率。

请注意,我们还可以自定义绘图,使其更加美观:

 import matplotlib. pyplot as plt

#find teams with top 10 occurrences
top_10_teams = (df[' team ']. value_counts ()).[:10]

#create bar chart of top 10 teams
top_10_teams. plot (kind=' bar ', edgecolor=' black ', rot=0)

#add axis labels
plt. xlabel (' Team ')
plt. ylabel (' Frequency ')

请注意, edgecolor参数在每个条形周围添加了黑色边框,而rot参数将 x 轴标签旋转 90 度,以使它们更易于阅读。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:如何创建堆积条形图
Pandas:如何在条形图中注释条形
Pandas:如何在条形图上绘制多列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注