Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plot 图形绘制中像素与记录的关系_Plot_Pixel_Record_Xrandr - Fatal编程技术网

Plot 图形绘制中像素与记录的关系

Plot 图形绘制中像素与记录的关系,plot,pixel,record,xrandr,Plot,Pixel,Record,Xrandr,使用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*+ 在x轴中只有1920像素,只有1920小框 import matpl

使用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*+
x
轴中只有
1920
像素,只有
1920
小框

import matplotlib.pyplot as plt
y = 1*19200
x = range(0,len(x))
plt.scatter(x,y)
plt.show()
我画了一条包含19200对记录的水平线。在
x
轴中只有
1920
像素,如何将
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个像素

您发布的代码没有运行。至少没有
x
可以接受
len()。
所以可能应该是这样的:

导入matplotlib.pyplot作为plt
y=[1]*19200
x=范围(019200)
plt.散射(x,y)
plt.show()
但那样的话,它只是画了一条线。

即使你有一个19200像素的显示器,你仍然会看到每一个像素上都有一个点。

我想你的意思是这样的:

导入matplotlib.pyplot作为plt
将numpy作为np导入
L=19200
y=[1]*L
x=[v*(i+1)表示枚举中的i,v(np.random.randint(0,2,L))]
plt.散射(x,y,α=0.5)
plt.show()
在一个非常大的显示器上,它看起来是这样的:

当然,你不能在一个像素中显示单独的点,但是你可以显示一个特定像素中有多少个点。只需在绘图中添加另一个维度

由于您的绘图只是一条线,并且您没有真正利用
y
轴,因此您可以将其用作额外的维度:

x=np.random.randint(0,2,size=(L,10))
y=np.和(x,轴=1)
x=范围(0,L)
在(x,y,alpha=0.5)之间填充
plt.show()
它将给出:

条形图的高度表示像素中的点数

或者,如果您真的想要一条线,您可以使用颜色作为额外维度:

x=np.random.randint(0,2,size=(L,10))
颜色=[(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,0)、(1,0,0)][v]表示np中的v.和(x,轴=1)]
#或者如果你喜欢单色
#颜色=[(1,0,0,v/10)表示np中的v.和(x,轴=1)]
x=范围(0,L)
y=[1]*L
plt.散射(x,y,c=颜色,s=3)
plt.show()
它给出:

单色版:

你可以玩它

由于图像比1920年更小,我使用了
L
,使它们在随机数据上更生动

更新:

第一组像素中有3个点。第二点有一点

图片:

你在第三组中看到多少分

如果你有良好的视力和大屏幕,你会看到有2点

但是如果你的视力很差,屏幕很小,或者你只是想离开屏幕。你还能说出有多少分吗?是的,你可以

当然,在某种程度上。如果你站在离屏幕1公里的地方,你可能看不到屏幕本身:)

但是你怎么知道呢?根据组的重量-它看起来比第一组轻,比第二组暗

现在,向某人显示下一幅图像,并告知第一组有树像素。然后问:其他组中有多少像素

图片:

他们可能会告诉你,这些组中有2和1个像素。 但事实并非如此。有相同数量的像素。唯一的区别是这些像素的颜色不同

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*+
所以,绘制多少像素并不重要。重要的是他们如何看待

但除此之外。。。你说“像素”,但它是一个点吗?不 在大多数情况下,有3个不同颜色的点

所以,如果你看到一个红色像素,你可以肯定有一个点变亮了。如果你看到黄色-有2个点变亮。等 根据颜色判断,你甚至可以准确地说出构成像素的点中哪些被高亮显示

但再说一次,这真的重要吗?如果你只是说:“这个特殊的颜色意味着(0,1)(1,1)(2,1),这个特殊的颜色意味着(3,1)(4,1),等等。”不管显示器和分辨率如何,人们都会理解你的情节

但是,同样重要的是:当你在显示器上画一个像素时,它甚至不是一个物理像素,也不仅仅是3个点。您的监视器的最大分辨率为8192*8192。。。因此,在分辨率为1920*1080的情况下,一个逻辑单元有8个以上的物理像素。这实际上为一个逻辑电路提供了超过16个物理像素。你也能

把10张唱片放在一个盒子里


…正如你所见,“盒子”相当大。您可以将16条记录放入其中身体上。逻辑上,你可以添加更多。

这意味着需要绘制19200对数据记录(x,y),但监视器上最多只能显示1920对数据记录,对吗?不,这些不是对,而是三元组:(x,y,n)*1920,其中
n
是从1到10。1920*10 - >19200. 例如,使用图像4上显示的方法(给定1920长度的画布),将绘制基本上19200个像素。绘制十对(x,y)数据记录需要多少像素:(0,1),(1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1)(