pyecharts画饼图add函数,显示百分比
时间: 2023-12-11 07:02:05 浏览: 503
在pyecharts中,可以使用formatter设置数据标签显示的格式,从而显示百分比。以下是绘制饼图并使用add函数添加数据并显示百分比的示例代码:
```python
from pyecharts import options as opts
from pyecharts.charts import Pie
# 创建饼图对象
pie = Pie()
# 添加数据
data = [('A', 10), ('B', 20), ('C', 30), ('D', 40)]
pie.add("", data, radius=["40%", "70%"], label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
# 配置图表样式
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图示例"))
# 显示图表
pie.render("pie.html")
```
在上面的示例代码中,我们在add函数中添加了一个label_opts参数,通过设置formatter="{b}: {d}%",表示数据标签显示的格式为“数据项名称: 百分比%”。另外,我们还通过设置radius参数来控制饼图的大小。
相关问题
用python怎么画出优美的扇形图
### 如何使用 Python 的 Matplotlib 或 Seaborn 库绘制美观的扇形图
#### 使用 Matplotlib 绘制扇形图
Matplotlib 提供了一个简单的方法来创建饼状图,这可以通过 `plt.pie()` 方法实现。下面是一个完整的例子:
```python
import matplotlib.pyplot as plt
# 创建数据集
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
# 定义每部分的颜色
colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']
# 是否显示阴影以及突出显示一部分
explode = (0, 0.1, 0, 0)
# 开始绘图
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%',
shadow=True, startangle=90)
# 确保饼图为圆形而不是椭圆
ax1.axis('equal')
# 添加标题
plt.title('动物分类比例')
# 展示图像
plt.show()
```
这段代码展示了如何通过调整参数来自定义图表样式[^1]。
#### 使用 Seaborn 配合 Matplotlib 绘制更精美的扇形图
虽然 Seaborn 主要用于统计图形,并没有直接提供画饼图的功能,但是可以借助其风格设定能力配合 Matplotlib 来制作更加漂亮的饼图。这里给出一个结合两者特性的实例:
```python
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid") # 设置全局主题为白色网格纸样式的背景
# 同样的数据准备过程...
labels = "A", "B", "C"
fracs = [15, 30, 45, 10]
explode=(0, 0.1, 0, 0)
# 利用Seaborn设置整体外观后再调用Matplotlib作图函数
with sns.axes_style("dark"):
fig, ax = plt.subplots(figsize=(8, 6))
patches, texts, autotexts = ax.pie(fracs,
explode=explode,
labels=labels,
autopct='%1.1f%%',
pctdistance=0.85,
labeldistance=1.05)
# 自定义文本属性让百分比看起来更好看一点
proptotal = sum(fracs)
for t in autotexts:
t.set_text(f'{t.get_text()} ({int(float(t.get_text().strip("%")) * proptotal / 100)})')
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig.gca().add_artist(centre_circle)
# 调整布局防止标签被裁剪掉
plt.tight_layout()
# 显示最终结果
plt.show()
```
此段代码不仅设置了不同的颜色方案和爆炸效果,还加入了中心空白区域使得整个图形显得更为现代简洁[^2]。
阅读全文