温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python如何画饼状图、折线图、圈图

发布时间:2021-11-25 14:53:08 来源:亿速云 阅读:331 作者:小新 栏目:大数据
# Python如何画饼状图、折线图、圈图 数据可视化是数据分析中不可或缺的一环,Python凭借其丰富的库生态系统(如Matplotlib、Seaborn、Plotly等)成为数据可视化的利器。本文将详细介绍如何使用Python绘制三种常见图表:**饼状图**、**折线图**和**圈图**(环形图),并提供完整代码示例。 --- ## 一、绘制饼状图(Pie Chart) 饼状图适用于展示各类别在整体中的占比关系,通过扇形面积直观呈现比例分布。 ### 1.1 基础饼状图 使用Matplotlib的`pie()`函数即可快速绘制: ```python import matplotlib.pyplot as plt # 数据准备 labels = ['A', 'B', 'C', 'D'] sizes = [15, 30, 45, 10] colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99'] # 绘制饼图 plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%') plt.title("基础饼状图示例") plt.axis('equal') # 保证圆形 plt.show() 

1.2 高级定制

  • 突出显示某一块:添加explode参数
  • 添加阴影效果:设置shadow=True
  • 调整起始角度:使用startangle参数
explode = (0.1, 0, 0, 0) # 突出第一块 plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90) 

二、绘制折线图(Line Chart)

折线图常用于展示数据随时间或有序类别的变化趋势。

2.1 单线折线图

import numpy as np # 生成示例数据 x = np.arange(1, 11) y = np.random.randint(1, 100, 10) plt.plot(x, y, marker='o', linestyle='--', color='b') plt.title("月度销售额趋势") plt.xlabel("月份") plt.ylabel("销售额(万元)") plt.grid(True) plt.show() 

2.2 多线对比折线图

y2 = np.random.randint(1, 100, 10) plt.plot(x, y, label='产品A') plt.plot(x, y2, label='产品B') plt.legend() # 显示图例 

2.3 使用Seaborn优化样式

import seaborn as sns sns.set_style("darkgrid") # 设置背景风格 sns.lineplot(x=x, y=y, marker='o') 

三、绘制圈图(环形图)

圈图是饼状图的变体,中间留白,适合强调部分与整体的关系。

3.1 基础环形图

通过设置wedgeprops参数实现:

plt.pie(sizes, labels=labels, colors=colors, wedgeprops={'width': 0.5}) # 宽度控制环的厚度 plt.title("环形图示例") 

3.2 多层环形图(旭日图)

使用极坐标系叠加多个环形:

# 内圈数据 inner_sizes = [20, 30, 50] inner_labels = ['X', 'Y', 'Z'] fig, ax = plt.subplots() ax.pie(sizes, labels=labels, radius=1.5, wedgeprops=dict(width=0.5, edgecolor='w')) ax.pie(inner_sizes, labels=inner_labels, radius=1, wedgeprops=dict(width=0.5, edgecolor='w')) ax.set(aspect="equal") plt.title("双层环形图") 

四、综合对比与选型建议

图表类型 适用场景 推荐库
饼状图 展示比例分布 Matplotlib
折线图 趋势分析、时间序列 Matplotlib/Seaborn
圈图 强调部分与整体关系 Matplotlib

五、完整代码示例

# 饼状图+折线图+圈图综合示例 fig, axes = plt.subplots(1, 3, figsize=(18, 5)) # 饼图 axes[0].pie(sizes, labels=labels, autopct='%1.1f%%') axes[0].set_title("饼状图") # 折线图 axes[1].plot(x, y, marker='o') axes[1].set_title("折线图") # 圈图 axes[2].pie(sizes, wedgeprops={'width':0.5}) axes[2].set_title("圈图") plt.tight_layout() plt.show() 

通过上述方法,您可以轻松实现Python中的数据可视化需求。如需更复杂的交互式图表,推荐尝试Plotly或Pyecharts库,它们支持动态交互和更丰富的视觉效果。 “`

(注:实际字数约1100字,可根据需要调整代码注释或补充理论说明以达到精确字数)

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI