这篇文章主要介绍了 python+matplotlib 绘制饼图散点图实例代码, 本实例是官网的一个实例, 不过也很简单, 大家可以参考下
本文是从 matplotlib 官网上摘录下来的一个实例, 实现的功能是 Python+matplotlib 绘制自定义饼图作为散点图的标记, 具体如下
首先看下演示效果
实例代码:
- import numpy as np
- import matplotlib.pyplot as plt
- # first define the ratios
- r1 = 0.2 # 20%
- r2 = r1 + 0.4 # 40%
- # define some sizes of the scatter marker
- sizes = np.array([60, 80, 120])
- # calculate the points of the first pie marker
- #
- # these are just the origin (0,0) +
- # some points on a circle cos,sin
- x = [0] + np.cos(np.linspace(0, 2 * np.pi * r1, 10)).tolist()
- y = [0] + np.sin(np.linspace(0, 2 * np.pi * r1, 10)).tolist()
- xy1 = list(zip(x, y))
- s1 = np.max(xy1)
- x = [0] + np.cos(np.linspace(2 * np.pi * r1, 2 * np.pi * r2, 10)).tolist()
- y = [0] + np.sin(np.linspace(2 * np.pi * r1, 2 * np.pi * r2, 10)).tolist()
- xy2 = list(zip(x, y))
- s2 = np.max(xy2)
- x = [0] + np.cos(np.linspace(2 * np.pi * r2, 2 * np.pi, 10)).tolist()
- y = [0] + np.sin(np.linspace(2 * np.pi * r2, 2 * np.pi, 10)).tolist()
- xy3 = list(zip(x, y))
- s3 = np.max(xy3)
- fig, ax = plt.subplots()
- ax.scatter(range(3), range(3), marker=(xy1, 0),
- s=s1 ** 2 * sizes, facecolor='blue')
- ax.scatter(range(3), range(3), marker=(xy2, 0),
- s=s2 ** 2 * sizes, facecolor='green')
- ax.scatter(range(3), range(3), marker=(xy3, 0),
- s=s3 ** 2 * sizes, facecolor='red')
- plt.show()
来源: http://www.phperz.com/article/18/0215/362975.html