2
我想绘制散点图上随机生成的一些磁盘的位置,并查看磁盘是否相互“连接”。为此,我需要设置固定/链接到轴刻度的每个磁盘的半径。
plt.scatter
函数中的's'
参数使用了点,所以尺寸相对于轴不固定。如果我动态地放大绘图,则散点图标记大小在绘图中保持不变,并且不随轴放大。
如何设置半径使其具有确定的值(相对于轴)?如何在散点图上设置圆形标记的固定/静态大小?
我想绘制散点图上随机生成的一些磁盘的位置,并查看磁盘是否相互“连接”。为此,我需要设置固定/链接到轴刻度的每个磁盘的半径。
plt.scatter
函数中的's'
参数使用了点,所以尺寸相对于轴不固定。如果我动态地放大绘图,则散点图标记大小在绘图中保持不变,并且不随轴放大。
如何设置半径使其具有确定的值(相对于轴)?如何在散点图上设置圆形标记的固定/静态大小?
而不是使用plt.scatter
,我建议使用patches.Circle
绘制图(类似于this answer)。这些补丁保持固定的大小,这样就可以动态地放大检查“关系”:
import matplotlib.pyplot as plt
from matplotlib.patches import Circle # for simplified usage, import this patch
# set up some x,y coordinates and radii
x = [1.0, 2.0, 4.0]
y = [1.0, 2.0, 2.0]
r = [1/(2.0**0.5), 1/(2.0**0.5), 0.25]
fig = plt.figure()
# initialize axis, important: set the aspect ratio to equal
ax = fig.add_subplot(111, aspect='equal')
# define axis limits for all patches to show
ax.axis([min(x)-1., max(x)+1., min(y)-1., max(y)+1.])
# loop through all triplets of x-,y-coordinates and radius and
# plot a circle for each:
for x, y, r in zip(x, y, r):
ax.add_artist(Circle(xy=(x, y),
radius=r))
plt.show()
情节此生成这个样子的:
使用从缩放选项图表窗口,可以得到这样的情节:
这版本放大一直保持吨他原来的圈大小,所以'连接'可以看出。
如果你想改变的圆圈是透明的,patches.Circle
需要一个alpha
作为参数。只要确保你与呼叫插入到Circle
没有add_artist
:
ax.add_artist(Circle(xy=(x, y),
radius=r,
alpha=0.5))
是可以设置的阿尔法值的圆,所以这是一个有点透明的,而当它们重叠,这部分有一个变暗的颜色? – Physicist 2014-12-12 16:06:23
@Physicist查看编辑。调用时可以设置圆的alpha值。 – Schorsch 2014-12-12 16:19:23