彩吧助手福彩3dhz
你的位置:彩吧助手福彩3dhz > 新闻动态 > Python数据可视化:简单条形图、帕累托图、堆叠条形图、饼图、环形图
发布日期:2025-04-13 12:32 点击次数:55
为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。
(以下练习题来源于《统计学—基于Python》。请在Q群455547227下载原始数据。)
练习题为了研究不同地区的消费者对网上购物的满意度,随机抽取东部、中部和西部的1000名消费者进行调查,得到的结果如下表所示。绘制以下图形。图片
(1)根据东部地区的满意度数据,绘制简单条形图、帕累托图和饼图。
(2)根据东部地区、中部地区和西部地区的满意度数据,绘制并列条形图、推叠条形图和环形图。
Python代码与绘图(1)根据东部地区的满意度数据,绘制简单条形图、帕累托图和饼图。# (1)根据东部地区的满意度数据,绘制简单条形图、帕累托图和饼图import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Heiti TC']plt.rcParams['axes.unicode_minus'] = Falsedf = pd.read_csv('exercise3_1.csv') plt.subplots(1, 3, figsize = (20, 5)) # 设置子图和图形大小# 图(a)东部地区满意度的简单条形图plt.subplot(131)plt.barh(y = df['满意度'], width = df['东部'], alpha = 0.6) # 绘制水平条形图plt.xlabel('消费者人数', size = 12)plt.ylabel('满意度', size = 12)plt.title('(a)东部地区满意度的条形图', size = 15)plt.xlim(0, 150) # 设置x轴的范围 # 图(b)东部地区满意度的帕累托图# 处理数据df_p = df.sort_values(by = '东部', ascending = False) # 按东部地区消费者人数降序排序数据框p = 100*df_p['东部'].cumsum()/df_p['东部'].sum() # 计算累计百分比df_p['累计百分比'] = p# 绘制直方图ax = plt.subplot(132)ax.bar(df_p['满意度'], df_p['东部'], color = 'steelblue') # 绘制条形图ax.set_ylabel('消费者人数', size = 12) # 设置y轴标签ax.set_xlabel('满意度', size = 12) # 设置x轴标签# 绘制帕累托曲线ax2 = ax.twinx() # 与条形图共享坐标轴ax2.plot(df_p['满意度'], df_p['累计百分比'], color = 'C1', marker = 'D', ms = 7) # 绘制折线图ax2.set_ylabel('累计百分比(%)', size = 12) # 设置y轴标签plt.title('(b)东部地区满意度的帕累托图', size = 15) # 图(c)东部地区满意度的3D饼图plt.subplot(133)p1 = plt.pie(df['东部'], labels = df['满意度'], autopct = '%1.2f%%', shadow = True, # 绘制立体带阴影的饼图 explode = (0.11, 0, 0, 0, 0)) # 设置某一块与中心的距离plt.title('(c)东部地区满意度的3D饼图', size = 15)图片
(2)根据东部地区、中部地区和西部地区的满意度数据,绘制并列条形图、推叠条形图和环形图。
#(2)根据东部地区、中部地区和西部地区的满意度数据,绘制并列条形图、推叠条形图和环形图import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Heiti TC']plt.rcParams['axes.unicode_minus'] = Falsedf = pd.read_csv('exercise3_1.csv') plt.subplots(1, 3, figsize = (20, 5)) # 设置子图和图形大小# 图(a)并列条形图ax1 = plt.subplot(131) # 设置子图1df.plot(kind = 'bar', stacked = False, width = 0.8, ax = ax1) # 绘制并列条形图plt.xlabel('满意度', size = 12)plt.ylabel('消费者人数', size = 12)plt.xticks(range(5), df['满意度'], rotation = 0) # 添加x轴标签并设置旋转角度plt.title('(a)并列条形图', fontsize = 13, color = 'black') # 图(b)堆叠条形图ax2 = plt.subplot(132) # 设置子图2df.plot(kind = 'bar', stacked = True, width = 0.5, ax = ax2) # 绘制堆叠条形图plt.xlabel('满意度', size = 12)plt.ylabel('消费者人数', size = 12)plt.xticks(range(5), df['满意度'], rotation = 0) # 添加x轴标签并设置旋转角度plt.title('(b)堆叠条形图', fontsize = 13, color = 'black') # 图(c)多样本嵌套环形图plt.subplot(133) # 设置子图3colors = ['red', 'yellow', 'slateblue', 'lawngreen', 'magenta', 'green', 'orange', 'cyan', 'pink', 'gold'] # 设置颜色向量p1 = plt.pie(df['东部'], labels = df['满意度'], autopct = '%1.2f%%', radius = 1, pctdistance = 0.9, # 半径为1,标签距圆心距离为0.9 colors = colors, wedgeprops = dict(linewidth = 1.2, width = 0.3, edgecolor = 'w'))p2 = plt.pie(df['西部'], autopct = '%1.2f%%', radius = 0.75, pctdistance = 0.85, # 半径为0.75,标签距圆心距离为0.85 colors = colors, wedgeprops = dict(linewidth = 1.2, width = 0.3, edgecolor = 'w'))p3 = plt.pie(df['中部'], autopct = '%1.2f%%', radius = 0.5, pctdistance = 0.7, # 半径为0.5,标签距圆心距离为0.7 colors = colors, wedgeprops = dict(linewidth = 1.2, width = 0.3, edgecolor = 'w'))plt.title('(c)多样本嵌套环形图', fontsize = 13, color = 'black') # plt.tight_layout()图片
都读到这里了,不妨关注、点赞一下吧!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。Powered by 彩吧助手福彩3dhz @2013-2022 RSS地图 HTML地图
Copyright Powered by站群 © 2013-2024
