在Python中使用无穷小点大小的散点图

时间:2017-08-21 16:55:03

标签: python matplotlib scatter-plot

是否可以在python中进行散点图,在给定的比例下,点的最小尺寸为1像素?即当我缩放绘图并且总是具有1个像素的大小时,点不应该缩放。

在pyplot中

plt.scatter(d3_transformed[:,0], d3_transformed[:,1], s=1)

我仍然像这样胖点

enter image description here

2 个答案:

答案 0 :(得分:0)

在散点图中,这些点的标记是一个符号,就像圆圈一样,这个符号也有一个边框。我认为边框是默认开启的。尝试关闭无聊,比如将其宽度设置为0。

http://matplotlib.org/api/lines_api.html#matplotlib.lines.Line2D.set_markeredgewidth

答案 1 :(得分:0)

您可以通过设置marker='.'将标记更改为某个点,然后使用linewidths=0删除轮廓以进一步缩小其大小。请注意,markeredgewidth不适用于scatter

考虑这个例子。如您所见,绘制的最后一行点(marker='.', s=1, linewidths=0)给出了最小的标记:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(1)
x = np.linspace(0, 10, 100)

ax.scatter(x, np.ones_like(x)+0, marker='o', s=1, color='k')
ax.scatter(x, np.ones_like(x)+1, marker='o', s=1, color='k', linewidths=0)
ax.scatter(x, np.ones_like(x)+2, marker='.', s=1, color='k')
ax.scatter(x, np.ones_like(x)+3, marker='.', s=1, color='k', linewidths=0)

plt.show()

enter image description here