本文是从matplotlib官网上摘录下来的一个实例,实现的功能是Python+matplotlib绘制自定义饼图作为散点图的标记,具体如下。
首先看下演示效果
实例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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()
|
总结
以上就是本文关于python+matplotlib绘制饼图散点图实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
原文链接:https://matplotlib.org/index.html#