3

使用xrandr获取我的显示器信息。

xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+

轴上只有1920像素,只有小盒子。x1920

import matplotlib.pyplot as plt
y = 1*19200
x = range(0,len(x))
plt.scatter(x,y)
plt.show()

我画了一条包含 19200 对记录的水平线。轴上只有1920像素x,如何将19200物品放入1920盒子中?
一个像素可以绘制 10 条记录吗?将 10 条记录放在一个盒子里?一个像素中有十个不同的数据记录?一个像素如何表达十条记录?

修正我所有的错字:

import matplotlib.pyplot as plt
y = [1]*19200
x = range(0,len(y))
plt.scatter(x,y)
plt.show()

这意味着有19200对数据记录(x,y)要绘制,但在这种情况下,显示器上最多只能显示1920对数据记录?
画十对(x,y)数据记录多少像素:(0,1),(1,1),(2,1),(3,1),(4,1),(5,1 ),(6,1),(7,1),(8,1),(9,1) 在我的情况下?在我看来,只有一个像素来绘制十对(x,y)数据记录,也就是说,只有一对(x,y)数据记录被绘制成一个像素,在x轴方向,有只有1920像素,一个像素画一对(x,y)记录,x轴方向需要19200像素。

4

1 回答 1

3

您发布的代码无法运行。至少没有什么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条记录放入其中。身体上。从逻辑上讲,您可以添加更多。

于 2020-04-16T15:29:43.260 回答