python数据可视化(一)读取csv数据绘制条扇形图

本文介绍了如何使用Python读取CSV文件,并通过数据可视化库绘制条形和扇形图,展示了数据的分布和比较。适用于数据分析初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍如何读取csv数据并绘制成扇形图
只是一个很简单的实例,如果需要扩展丰富,只需要往这个模板往上加就是了
csv文件链接:https://pan.baidu.com/s/1aLlGEcZEkMiTf9Pfsh-9WQ 
提取码:jr5t 
import csv
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

def hydata_0():
    #读取文件
    pr=pd.read_csv("hydata_swjl_0.csv")
    #print(pr)
    a=[]
    man=0
    woman=0
    others=0
    #统计男女比例
    for  sex in pr['XB']:#从XB列读取数据
        if sex=='男':
            man+=1
        elif sex=='女':
            woman+=1
        else:
            others+=1

    #绘制饼状图

    labels=['MALE','FEMALE','OTHERS']
    #绘图显示的标签
    values=[man,woman,others]
    colors=['y','m','b']
    explode=[0,0.1,0]
    #旋转角度
    plt.title("Male to female ratio",fontsize=25)
    #标题
    plt.pie(values,labels=labels,explode=explode,colors=colors,
            startangle = 180,
            shadow=True,autopct='%1.1f%%')
    plt.axis('equal')
    plt.show()

                
### 回答1: 我可以为你提供Python成绩分析可视化代码的示例:import matplotlib.pyplot as plt # 数据 subjects = ["数学","英语","物理","化学","生物"] scores = [90, 85, 90, 80, 95] # 绘制 plt.bar(subjects, scores) plt.xlabel('科目') plt.ylabel('成绩') plt.title('学生成绩分析可视化') plt.show() ### 回答2: 下面是个用Python编写的成绩分析可视化代码: ```python import pandas as pd import matplotlib.pyplot as plt # 读取成绩数据 df = pd.read_csv('成绩数据.csv') # 统计各科目平均分和最高分 subject_avg = df.mean() subject_max = df.max() # 绘制各科目平均分和最高分柱状 plt.figure(figsize=(10, 6)) plt.bar(subject_avg.index, subject_avg.values, label='平均分') plt.bar(subject_max.index, subject_max.values, label='最高分') plt.xlabel('科目') plt.ylabel('分数') plt.title('各科目平均分和最高分') plt.legend() plt.show() # 统计总成绩排名前10名的学生 df['总成绩'] = df.sum(axis=1) # 计算总成绩 top10 = df.nlargest(10, '总成绩') # 绘制总成绩排名前10名学生的 plt.figure(figsize=(10, 6)) plt.bar(top10['姓名'], top10['总成绩']) plt.xlabel('姓名') plt.ylabel('总成绩') plt.title('总成绩排名前10名学生') plt.show() # 统计各个班级的平均分 class_avg = df.groupby('班级').mean()['总成绩'] # 绘制各个班级平均分折线 plt.figure(figsize=(10, 6)) plt.plot(class_avg.index, class_avg.values, marker='o') plt.xlabel('班级') plt.ylabel('平均分') plt.title('各个班级平均分') plt.show() ``` 上述代码读取名为"成绩数据.csv"的文件作为成绩数据源,然后进行分析并可视化展示了以下三个方面: 1. 绘制各科目的平均分和最高分的柱状; 2. 绘制总成绩排名前10名的学生的; 3. 绘制各个班级的平均分的折线。 通过以上的可视化展示,可以更直观地了解和分析成绩数据。 ### 回答3: 写python成绩分析可视化代码,可以按照学生姓名和成绩进行分析和可视化。 首先,我们需要准备个包含学生姓名和成绩的数据集。我们可以使用个字典来表示每个学生的姓名和成绩,例如: ``` data = {"张三": 85, "李四": 92, "王五": 78, "赵六": 95, "钱七": 88} ``` 接下来,我们需要导入相关的库,包括matplotlib库用于可视化数据,以及numpy库用于对数据进行统计分析。首先,我们导入这些库: ```python import matplotlib.pyplot as plt import numpy as np ``` 接下来,我们可以使用matplotlib库来绘制成绩分布的直方。我们可以使用plt.hist()函数来绘制直方。在绘制之前,我们可以将成绩数据转换成numpy数组,以便于后续数据分析和可视化: ```python scores = np.array(list(data.values())) plt.hist(scores, bins=10, color='skyblue', edgecolor='black') plt.xlabel('成绩') plt.ylabel('人数') plt.title('成绩分布直方') plt.show() ``` 这段代码会生成个成绩分布的直方,x轴表示成绩分数,y轴表示人数。 除了直方之外,我们还可以使用matplotlib库来绘制成绩分布的饼。我们可以使用plt.pie()函数来绘制。在绘制之前,我们可以使用np.histogram()函数根据成绩数据来计算不同成绩区间的人数。然后,我们可以使用plt.pie()函数来绘制: ```python hist, bin_edges = np.histogram(scores, bins=10) plt.pie(hist, labels=bin_edges[:-1], autopct='%1.1f%%') plt.title('成绩分布饼') plt.show() ``` 这段代码会生成个成绩分布的饼,每个扇形表示个成绩区间的人数百分比。 除了直方和饼之外,我们还可以使用matplotlib库来绘制成绩的折线。我们可以使用plt.plot()函数来绘制折线。在绘制之前,我们可以根据成绩数据来生成个按照成绩排序的索引列表,然后,我们可以使用plt.plot()函数来绘制折线: ```python sorted_indexes = np.argsort(scores) sorted_scores = scores[sorted_indexes] plt.plot(sorted_indexes, sorted_scores, 'b') plt.xlabel('学生编号') plt.ylabel('成绩') plt.title('成绩折线') plt.show() ``` 这段代码会生成个成绩的折线,x轴表示学生编号,y轴表示成绩。 综上所述,这是个用于成绩分析可视化的python代码,可以根据学生姓名和成绩绘制直方、饼和折线
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值