嵌套饼图

您所在的位置:网站首页 环形图套饼图怎么做 嵌套饼图

嵌套饼图

2024-07-06 04:39| 来源: 网络整理| 查看: 265

笔记

单击此处 下载完整的示例代码

嵌套饼图#

以下示例显示了在 Matplotlib 中构建嵌套饼图的两种方法。这种图表通常被称为圆环图。

import matplotlib.pyplot as plt import numpy as np

构建饼图最直接的方法是使用 pie方法。

在这种情况下,pie 采用与组中的计数相对应的值。我们将首先生成一些假数据,对应于三个组。在内圈中,我们将每个数字视为属于它自己的组。在外圈中,我们将它们绘制为原始 3 组的成员。

甜甜圈形状的效果是通过wedgeprops参数将a 设置width为馅饼的楔子来实现的。

fig, ax = plt.subplots() size = 0.3 vals = np.array([[60., 32.], [37., 40.], [29., 10.]]) cmap = plt.colormaps["tab20c"] outer_colors = cmap(np.arange(3)*4) inner_colors = cmap([1, 2, 5, 6, 9, 10]) ax.pie(vals.sum(axis=1), radius=1, colors=outer_colors, wedgeprops=dict(width=size, edgecolor='w')) ax.pie(vals.flatten(), radius=1-size, colors=inner_colors, wedgeprops=dict(width=size, edgecolor='w')) ax.set(aspect="equal", title='Pie plot with `ax.pie`') plt.show()

但是,您可以通过在具有极坐标系的轴上使用条形图来完成相同的输出。这可以为情节的精确设计提供更大的灵活性。

在这种情况下,我们需要将条形图的 x 值映射到圆的弧度上。值的累积和用作条的边缘。

fig, ax = plt.subplots(subplot_kw=dict(projection="polar")) size = 0.3 vals = np.array([[60., 32.], [37., 40.], [29., 10.]]) # Normalize vals to 2 pi valsnorm = vals/np.sum(vals)*2*np.pi # Obtain the ordinates of the bar edges valsleft = np.cumsum(np.append(0, valsnorm.flatten()[:-1])).reshape(vals.shape) cmap = plt.colormaps["tab20c"] outer_colors = cmap(np.arange(3)*4) inner_colors = cmap([1, 2, 5, 6, 9, 10]) ax.bar(x=valsleft[:, 0], width=valsnorm.sum(axis=1), bottom=1-size, height=size, color=outer_colors, edgecolor='w', linewidth=1, align="edge") ax.bar(x=valsleft.flatten(), width=valsnorm.flatten(), bottom=1-2*size, height=size, color=inner_colors, edgecolor='w', linewidth=1, align="edge") ax.set(title="Pie plot with `ax.bar` and polar coordinates") ax.set_axis_off() plt.show()

参考

此示例中显示了以下函数、方法、类和模块的使用:

matplotlib.axes.Axes.pie/matplotlib.pyplot.pie

matplotlib.axes.Axes.bar/matplotlib.pyplot.bar

matplotlib.projections.polar

Axes.set( matplotlib.artist.Artist.set)

matplotlib.axes.Axes.set_axis_off

Download Python source code: nested_pie.py

Download Jupyter notebook: nested_pie.ipynb

由 Sphinx-Gallery 生成的画廊



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3