提问人:krmbla 提问时间:11/5/2023 更新时间:11/5/2023 访问量:22
构建直方图并找到 5 个最大值的问题
Problem with building a histogramm and finding 5 biggest values
问:
white = df.loc[df['winner'] == 'white']
whitestrat = white.groupby(white['opening_name']).agg({'opening_name': 'count'})
display(whitestrat)
所以,问题是我得到了一个对构建直方图没有帮助的数据帧。
opening_name
opening_name
Alekhine Defense 34
Alekhine Defense #2 1
Amar Opening 2
Amazon Attack 2
Anderssen Opening 5
... ...
Wade Defense 1
Ware Defense 5
Ware Opening 1
Yusupov-Rubinstein System 8
Zukertort Opening 64
wwin = whitestrat.opening_name.nlargest(5)
sb.histplot(data = wwin)
我尝试制作一个具有 5 个最大值的数据帧,但无法正确绘制
wwin 看起来像这样
opening_name
Sicilian Defense 588
French Defense 321
Italian Game 233
Queen's Pawn Game 214
King's Pawn Game 205
Name: opening_name, dtype: int64
如何制作一个包含 whitestrat 中 5 个最大值及其名称的数据帧,并制作一个包含名称为 x 轴和值为 y 轴的直方图?
答:
0赞
user19077881
11/5/2023
#1
我不确定您的数据形式,或者您是否想要直方图或条形图(正如您提到的值)。将最后 5 个数据项作为 DF,您可以获得如下图,这可能是您想要的 - 否则请指教。该方法在链接中讨论
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'Opening Name': ["Sicilian Defense", "French Defense", "Italian Game", "Queen's Pawn Game", "King's Pawn Game"],
'Value' : [588, 321, 233, 214, 205]
})
print(df)
x = df['Opening Name']
y = df['Value']
plt.figure(figsize = (10, 5))
def addlabels(x,y):
for i in range(len(x)):
plt.text(i, y[i], y[i], ha = 'center')
plt.bar(x, y)
addlabels(x, y)
plt.show()
指纹
Opening Name Value
0 Sicilian Defense 588
1 French Defense 321
2 Italian Game 233
3 Queen's Pawn Game 214
4 King's Pawn Game 205
评论