1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python设置散点图点的大小_matplotlib - pyplot散点图标记大小

python设置散点图点的大小_matplotlib - pyplot散点图标记大小

时间:2020-06-21 17:45:51

相关推荐

python设置散点图点的大小_matplotlib  -  pyplot散点图标记大小

因为这里的其他答案声称fig.dpi=100表示标记的区域,我正在添加这个答案以澄清这不一定是这种情况。

分数大小^ 2

参数fig.dpi=100在s中表示markersize**2.正如文档所述

fig.dpi=100:标量或array_like,shape(n,),可选

大小以点^ 2。 默认值为rcParams ['lines.markersize'] ** 2。

这可以从字面上理解。 为了获得x点大的标记,您需要将该数字平方并将其赋予fig.dpi=100参数。

因此,线图的标记大小与散点大小参数之间的关系是平方。 为了生成与大小为10点的绘图标记大小相同的散点标记,您将调用fig.dpi=100。

import matplotlib.pyplot as plt

fig,ax = plt.subplots()

ax.plot([0],[0], marker="o", markersize=10)

ax.plot([0.07,0.93],[0,0], linewidth=10)

ax.scatter([1],[0], s=100)

ax.plot([0],[1], marker="o", markersize=22)

ax.plot([0.14,0.86],[1,1], linewidth=22)

ax.scatter([1],[1], s=22**2)

plt.show()

连接到“区域”

那么为什么其他答案甚至文档都谈到了fig.dpi=100参数的“区域”?

当然,点** 2的单位是面积单位。

对于方形标记的特殊情况fig.dpi=100,标记的区域确实直接是s参数的值。

对于圆形,圆的面积为fig.dpi=100。

对于其他标记,甚至可能与标记的区域没有任何明显的关系。

但是,在所有情况下,标记的面积与fig.dpi=100参数成比例。 这是将其称为“区域”的动机,即使在大多数情况下它并不是真的。

根据与标记的面积成比例的一些量来指定散射标记的大小在很大程度上是因为它是在比较不同的贴片而不是其边长或直径时感知的标记的面积。即 将基础数量加倍应该使标记的面积加倍。

什么是积分?

到目前为止,分散标记大小的答案以点为单位给出。 点通常用于排版,其中字体以点指定。 线宽通常也以点数指定。 matplotlib中标准点的大小是每英寸72点(ppi) - 因此1点是1/72英寸。

能够以像素而不是点指定大小可能是有用的。 如果图形dpi也是72,则一个点是一个像素。 如果数字dpi不同(matplotlib默认为fig.dpi=100),

1 point == fig.dpi/72. pixels

虽然散点标记的点大小因此对于不同的图形dpi看起来不同,但是可以产生10乘10像素^ 2的标记,其总是具有相同的像素数量:

import matplotlib.pyplot as plt

for dpi in [72,100,144]:

fig,ax = plt.subplots(figsize=(1.5,2), dpi=dpi)

ax.set_title("fig.dpi={}".format(dpi))

ax.set_ylim(-3,3)

ax.set_xlim(-2,2)

ax.scatter([0],[1], s=10**2,

marker="s", linewidth=0, label="100 points^2")

ax.scatter([1],[1], s=(10*72./fig.dpi)**2,

marker="s", linewidth=0, label="100 pixels^2")

ax.legend(loc=8,framealpha=1, fontsize=8)

fig.savefig("fig{}.png".format(dpi), bbox_inches="tight")

plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。