您发布的代码无法运行。至少没有什么x
可取len()
之处。所以可能它应该是这样的:
import matplotlib.pyplot as plt
y = [1]*19200
x = range(0,19200)
plt.scatter(x,y)
plt.show()
但那样它只是画了一条线。
即使您有一台 19200 像素的显示器,您仍然会在其每个像素中看到一条带点的线。
所以我想你实际上的意思是这样的:
import matplotlib.pyplot as plt
import numpy as np
L = 19200
y = [1]*L
x = [v*(i+1) for i, v in enumerate(np.random.randint(0,2,L))]
plt.scatter(x,y,alpha=0.5)
plt.show()
在一个非常大的显示器上,它看起来像这样:
当然,你不能在一个像素中显示单独的点,但你可以显示有多少点适合一个特定的像素。只需为您的情节添加另一个维度。
由于您的情节只是一条线,并且您并没有真正利用y
轴,因此您可以将其用作额外的维度:
x = np.random.randint(0,2,size=(L,10))
y = np.sum(x,axis=1)
x = range(0,L)
plt.fill_between(x,y, alpha=0.5)
plt.show()
它会给:
条的高度表示像素中的点数。
或者如果你真的想要一条线,你可以使用颜色作为额外的维度:
x = np.random.randint(0,2,size=(L,10))
colors = [[(1,1,1),(0,0,1),(0,0.5,1),(0,1,1),(0,1,0.5),(0,1,0),(0.5,1,0),(1,1,0),(1,0.5,0),(1,0,0)][v] for v in np.sum(x,axis=1)]
# or if your prefer monochrome
# colors = [(1,0,0,v/10) for v in np.sum(x,axis=1)]
x = range(0,L)
y = [1]*L
plt.scatter(x,y, c=colors, s=3)
plt.show()
它给:
单色版:
你可以在这里玩
由于图像比 1920 年的图像更小,因此我使用L
以使它们在随机数据上更加生动。
更新:
第一组像素中有 3 个点。第二点有一点。
图片:
您在第三组中看到多少分?
如果您有良好的视力和大屏幕,您会看到有 2 点。
但是,如果您的视力不佳、屏幕很小,或者您只是远离屏幕怎么办。你还能说出有多少分吗?是的你可以!
在某种程度上,当然。如果您站在距离屏幕 1 公里的地方,您可能无法看到屏幕本身 :)
但你怎么知道?按组的重量 - 它看起来比第一个更轻,比第二个更暗。
现在,向某人展示下一张图像并告诉第一组有树像素。然后问:其他组有多少像素?
图片:
他们可能会告诉您这些组中有 2 个和 1 个像素。但事实并非如此。有相同数量的像素。唯一的区别是那些像素有不同的颜色。
因此,绘制多少像素并不重要。重要的是他们如何看待。
但更重要的是......你说“像素”,但它是一个点吗?不!在大多数情况下,有3个不同颜色的点。
因此,如果您看到一个红色像素,您可以确定有一个点变亮。如果您看到黄色 - 有 2 个点变亮。等等。通过颜色判断,您甚至可以准确地说出构成像素的哪些点被突出显示。
但是,这真的很重要吗?如果你只是说:“这个特定的颜色意味着 (0,1)(1,1)(2,1),而这个特定的颜色意味着 (3,1)(4,1) 等等。” 无论显示器及其分辨率如何,人们都会理解您的情节。
但是,再一次,不止于此:当您在显示器上绘制一个像素时,它甚至不是一个物理像素,而不仅仅是 3 个点。您的显示器的最大分辨率为 8192 * 8192 ......所以一个逻辑分辨率为 1920 * 1080 的物理像素超过 8 个。这实际上为一个逻辑提供了超过 16 个物理像素。你也可以
将 10 条记录放在一个盒子里?
...如您所见,“盒子”很大。您可以将16条记录放入其中。身体上。从逻辑上讲,您可以添加更多。