首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib和Pandas绘制一定范围内的数字数量

Matplotlib和Pandas绘制一定范围内的数字数量
EN

Stack Overflow用户
提问于 2022-05-10 12:53:06
回答 1查看 59关注 0票数 -1

我有熊猫数据图,看起来是这样的:

我要求创造这样的地块,每年1.10,分数范围为1.10。--这意味着每年都会出现情节:

代码语言:javascript
复制
how many values between [0-1] have in year 1
how many values between [2-3] have in year 1
how many values between [4-5] have in year 1
.
.
.
.
.
how many values between [6-7] have in year 10
how many values between [8-9] have in year 10
how many values between [10] has in year 10

需要帮助,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-05-13 16:34:08

以下代码工作得很好:

代码语言:javascript
复制
def visualize_yearly_score_distribution(ds, year):

sns.set_theme(style="ticks")

first_range = 0
second_range = 0
third_range = 0
fourth_range = 0
fifth_range = 0
six_range = 0
seven_range = 0
eight_range = 0
nine_range = 0
last_range = 0
score_list = []

for index, row in ds.iterrows():
    if row['Publish Date'] == year:
        if 0 < row['Score'] < 1:
            first_range += 1
        if 1 < row['Score'] < 2:
            second_range += 1
        if 2 < row['Score'] < 3:
            third_range += 1
        if 3 < row['Score'] < 4:
            fourth_range += 1
        if 4 < row['Score'] < 5:
            fifth_range += 1
        if 5 < row['Score'] < 6:
            six_range += 1
        if 6 < row['Score'] < 7:
            seven_range += 1
        if 7 < row['Score'] < 8:
            eight_range += 1
        if 8 < row['Score'] < 9:
            nine_range += 1
        if 9 < row['Score'] < 10:
            last_range += 1
score_list.append(first_range)
score_list.append(second_range)
score_list.append(third_range)
score_list.append(fourth_range)
score_list.append(fifth_range)
score_list.append(six_range)
score_list.append(seven_range)
score_list.append(eight_range)
score_list.append(nine_range)
score_list.append(last_range)
range_list = ['0-1', '1-2', '2-3', '3-4', '4-5', '5-6', '6-7', '7-8', '8-9', '9-10']

plt.pie([x*100 for x in score_list], labels=[x for x in range_list], autopct='%0.1f', explode=None)
plt.title(f"Yearly Score Distribution for {str(year)}")
plt.tight_layout()
plt.legend()
plt.show()

谢谢大家的善意评论:)这个案子已经结案了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72186680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档