
Python通过matplotlib绘制双层饼状图和环形图的基础示例
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
基于matplotlib绘制环形图,我们可以通过matplotlib库来实现这一目标。其能够在特定场景中更直观地呈现数据间的差异。如同饼图一样,环形图通过内外两个同心圆区分数据,这种结构使比较更为清晰。```python
import matplotlib.pyplot as plt
# 数据
categories = [A, B, C, D]
outer_values = [1, 2, 3, 4]
inner_values = [0.5, 1.5, 2.5, 3.5]
# 创建figure和子图
fig, ax = plt.subplots()
# 绘制外层环形图
ax.pie(outer_values, radius=1, colors=[yellowgreen, gold, lightskyblue, lightcoral], wedgeprops=dict(width=0.3))
# 绘制内层环形图,注意颜色需与外层对应
ax.pie(inner_values, radius=1-0.3, colors=[lightgreen, lightgoldenrod, lightblue, lightcoral], wedgeprops=dict(width=0.3))
# 设置标题和比例
ax.set(aspect=equal, title=Ring plot with `ax.pie`)
# 添加百分比标签
for p in ax.patches:
ang = (p.theta2 - p.theta1)2. + p.theta1
y = np.sin(np.deg2rad(ang))
x = np.cos(np.deg2rad(ang))
horizontalalignment = {-1: right, 1: left}[int(np.sign(x))]
connectionstyle = angle,angleA=0,angleB={}.format(ang)
ax.annotate({:.1f}%.format(100*p.get_width()), xy=(x, y), xytext=(1.35*np.sign(x), 1.4*y),
horizontalalignment=horizontalalignment, verticalalignment=center,
arrowprops=dict(arrowstyle=-, connectionstyle=connectionstyle))
# 显示图形
plt.show()
```在这个例子中,随后设定内外两层环的值参数后,逐一调用`ax.pie()`函数进行绘制操作,在调整`radius`和`width`参数的同时实现环形大小与间距的精确控制。接着通过调用`annotate()`方法添加百分比标签,并结合设置合适的`arrowprops`和`connectionstyle`参数对标签进行样式设计,使各百分比标注信息能够直观地指向对应的扇形区域。matplotlib库支持强大的图形绘制功能,其中包括饼图和环形图两种类型。通过调节相应的参数设置,可以生成多种复杂而美观的图表形式。当需要展示各组成部分在整体中的占比时,使用饼图更为合适;而在区分内外层次数据差异的情况下,则应优先选择环形图。根据具体的数据特征选取合适的图形类型,并通过精细调整相关参数来优化视觉效果,这将有助于更清晰地传达关键信息。
全部评论 (0)


