寻找散点图的合适标记大小

2024-09-28 01:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想绘制一个网格,其中网格中的每个节点都由一个点绘制,带有特定的颜色代码(取自存储在节点中的向量)。在

{1美元^

这里的网格大小取决于我运行的模拟的大小。我还没有弄清楚画布大小和标记大小之间的关系。现在我使用以下公式:

markersize = (figsize*figsize*dpi*dpi)/(xdim*ydim)
plt.scatter(X, Y, s=markersize/3, marker='s', c=Z, cmap=cm.rainbow)
plt.show()

即I平方sigsize和dpi(分别使用15和80),然后除以网格的维数。最后我把这个除以3,因为我发现这个有用。在

但我还没弄清楚如何分析得出正确的标记大小。我想要的是一个网格,其中每个正方形都尽可能多地使用一个空间,但不会“侵犯”其他节点的空间,因此标记重叠。在

据我所知,尺寸是用英寸表示的。dpi是每英寸-dots,而markersize以-points指定。如果点与点相同,则每个轴上的点的dpifigsize数量。xdimydim是网格中的节点数量。除以pow(dpifigsize,2)/xdimydim应该可以得到每个节点的点数,以及我认为的每个标记的正确大小。但这让标记太大了。我把它除以3,它对我通常使用的尺码有点管用,但不是全部。(我猜一个点和一个点是不一样的,但这是什么关系?)在

我怎样才能得出正确的答案呢?理想情况下,我想要一张非常精细的照片,在那里我可以放大某些区域,以获得更精细的颜色差别。在


Tags: 标记网格数量节点关系绘制空间plt
1条回答
网友
1楼 · 发布于 2024-09-28 01:32:37

如果要精确控制标记大小并使其与图形保持比例,可以使用patch代替常规标记。下面是一个例子:

from matplotlib import pyplot as plt
from matplotlib.patches import Circle

x = [1, 2, 3, 4, 5]
y = [1, 3, 1, 2, 4]
colors = [10, 215, 30, 100]

cmap = plt.cm.jet
fig = plt.figure()
ax = fig.add_subplot(111, aspect='equal')

for (x, y, c) in zip(x, y, colors):
    ax.add_artist(Circle(xy=(x, y), radius=0.5, color=cmap(c)))      

ax.set_xlim(0, 6)
ax.set_ylim(0, 6)
plt.show()

你也可以用矩形代替圆。在

相关问题 更多 >

    热门问题