在散点图的pyplot文档中:
matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None,
vmin=None, vmax=None, alpha=None, linewidths=None,
faceted=True, verts=None, hold=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)
标记大小
s:以磅为单位的大小^ 2.它是一个标量或与x和y长度相同的数组.
什么样的单位points^2?这是什么意思?是否s=100意味10 pixel x 10 pixel?
基本上我正在尝试制作具有不同标记大小的散点图,我想弄清楚这个s数字是什么意思.
我想缩放markersize的matplotlib.pyplot.Axes.scatter基于在x/y轴的点的数量曲线图.
import matplotlib.pyplot as plt
import numpy as np
vmin = 1
vmax = 11
x = np.random.randint(vmin, vmax, 5)
y = np.random.randint(vmin, vmax, 5)
fig, ax = plt.subplots()
for v in np.arange(vmin, vmax):
ax.axvline(v - 0.5)
ax.axvline(v + 0.5)
ax.axhline(v - 0.5)
ax.axhline(v + 0.5)
ax.set_xlim(vmin - 0.5, vmax + 0.5)
ax.set_ylim(vmin - 0.5, vmax + 0.5)
ax.scatter(x, y)
ax.set_aspect(1)
plt.show()
Run Code Online (Sandbox Code Playgroud)
ax始终使用相等的纵横比,两个轴具有相同的lim值.
该markersize两地块留给默认,即markersize=6. …
我的问题有点类似于这个问题,它绘制了数据坐标中给出的宽度线.让我的问题更具挑战性的是,与链接问题不同,我希望扩展的片段是随机的.
假设线段从哪里(0, 10)开始(10, 10),我希望将其扩展为宽度6.那就简单了
x = [0, 10]
y = [10, 10]
ax.fill_between(x, y - 3, y + 3)
Run Code Online (Sandbox Code Playgroud)
但是,我的线段是随机的.也就是说,它不一定沿x轴或y轴.它有一定的坡度.
线段s定义为其起点和终点的列表:[(x1, y1), (x2, y2)].
现在我希望将线段扩展到一定的宽度w.该解决方案有望用于任何方向的线段.这该怎么做?
更新: plt.plot(x, y, linewidth=6.0)无法做到这一点,因为我希望我的宽度与我的数据在同一个单位.