Python画环形图
时间: 2024-09-26 19:17:51 浏览: 40
在Python中,你可以使用matplotlib库中的`pie()`函数来创建环形图,也被称为饼图。环形图用于显示各部分占总体的比例,并通过颜色和标签清晰地展示出来。以下是一个简单的例子:
```python
import matplotlib.pyplot as plt
# 数据
labels = ['部分A', '部分B', '部分C', '部分D']
sizes = [40, 30, 25, 5] # 各部分所占百分比,总和应为100%
# 创建环形图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140, pctdistance=0.85) # 自动添加百分比标签
# 添加背景圆环
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
# 设置图形标题和标签
plt.title('环形图示例')
plt.axis('equal') # 确保饼图是正圆形的,而不是椭圆形
plt.show()
相关问题
python画环形图_用Python把图做的好看点:用Matplotlib画个环形图
好的,以下是用 Python 的 Matplotlib 库画环形图的示例代码:
```python
import matplotlib.pyplot as plt
# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
# 颜色
colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']
# 环形图
fig1, ax1 = plt.subplots()
# 内环
ax1.pie([100], radius=0.7, colors=['w'])
# 外环
ax1.pie(sizes,
labels=labels,
colors=colors,
autopct='%1.1f%%',
startangle=90,
pctdistance=0.85,
labeldistance=1.1)
# 标题
ax1.set_title("环形图示例")
# 显示
plt.show()
```
运行以上代码,即可得到一个简单的环形图。
解释:
1. `labels` 和 `sizes` 分别为环形图的标签和大小。
2. `colors` 为环形图各部分的颜色。
3. `fig1, ax1 = plt.subplots()` 创建一个子图。
4. `ax1.pie([100], radius=0.7, colors=['w'])` 画内环。`[100]` 表示内环大小为 100,`radius=0.7` 表示内环半径为外环半径的 0.7,`colors=['w']` 表示内环颜色为白色。
5. `ax1.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90, pctdistance=0.85, labeldistance=1.1)` 画外环。`sizes` 为各部分的大小,`labels` 为各部分的标签,`colors` 为各部分的颜色。`autopct='%1.1f%%'` 表示显示各部分的百分比。`startangle=90` 表示从 90 度开始画图。`pctdistance=0.85` 表示百分比标签与圆心的距离,`labeldistance=1.1` 表示标签与圆心的距离。
6. `ax1.set_title("环形图示例")` 设置环形图标题。
7. `plt.show()` 显示图形。
python 环形柱状图
### 使用 Matplotlib 绘制环形柱状图
为了创建一个环形柱状图,可以利用 `matplotlib` 库中的饼图功能来模拟这种效果。通过调整内圈和外圈两个不同半径大小的饼图实现这一目标[^1]。
下面是一个具体的例子展示如何用 Python 和 Matplotlib 来制作这样的图表:
```python
import matplotlib.pyplot as plt
# 数据准备
labels = ['A', 'B', 'C', 'D']
sizes_outer = [20, 35, 30, 15]
sizes_inner = [8, 17, 19, 6]
fig, ax = plt.subplots()
ax.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
# 外层绘制
wedges, texts = ax.pie(sizes_outer, labels=labels, startangle=90)
# 内层绘制 (无标签)
inner_wedges, _ = ax.pie(sizes_inner, radius=0.7, labeldistance=0.7, startangle=90)
centre_circle = plt.Circle((0, 0), 0.5, color='white')
fig.gca().add_artist(centre_circle)
plt.title('Ring Bar Chart Example')
plt.show()
```
这段代码首先定义了内外两组数据用于表示不同的部分;接着调用了两次 `pie()` 方法分别画出了外部较大的扇区以及内部较小但是更靠近中心位置的部分;最后添加了一个白色的圆形覆盖在最中间区域以形成“孔”的视觉效果[^1]。
阅读全文