Код, который вы разместили, не работает. По крайней мере, нет x
, из которых можно было бы взять len()
. Так что, вероятно, это должно выглядеть так:
import matplotlib.pyplot as plt
y = [1]*19200
x = range(0,19200)
plt.scatter(x,y)
plt.show()
Но таким образом он просто рисует линию.
![введите здесь описание изображения](https://i .stack.imgur.com/T9pAz.png)
Даже если у вас есть монитор с разрешением 19 200 пикселей, вы все равно увидите линию с точкой в каждом пикселе.
![введите здесь описание изображения](https://i.stack.imgur.com/E8KvO.png)
Итак, я полагаю, вы на самом деле имели в виду что-то вроде этого:
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()
На очень большом мониторе это будет выглядеть так:
![введите здесь описание изображения](https:/ /i.stack.imgur.com/BXAIS.png)
И, конечно, вы не можете показать отдельные точки в одном пикселе, но вы можете показать, сколько точек помещается в один конкретный пиксель. Просто добавьте еще одно измерение к вашему сюжету.
Поскольку ваш график представляет собой просто линию, и вы на самом деле не используете ось 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()
Это даст:
![введите здесь описание изображения](https://i.stack.imgur. com/30KWa.png)
Высота полосы представляет количество точек в пикселе.
Или, если вам действительно нужна линия, вы можете использовать цвет в качестве дополнительного измерения:
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()
Это дает:
![введите здесь описание изображения](https://i.stack.imgur.com /eFL6j.png)
Монохромная версия:
![введите здесь описание изображения](https://i.stack.imgur.com /4IHCz.png)
Вы можете поиграть с ним здесь
Поскольку изображения еще меньше, чем 1920 год, я поэкспериментировал с L
, чтобы сделать их более яркими на случайных данных.
Обновление:
В первой группе пикселей 3 точки. И есть один момент во втором.
Изображение: ![[img]](https://i.stack.imgur.com/GooIe.png)
Сколько очков вы видите в третьей группе?
Если у вас хорошее зрение и большой экран вы увидите, что там 2 точки.
Но что, если у вас плохое зрение, маленький экран или если вы просто отойдете от экрана. Можете ли вы еще сказать, сколько очков там? Да, ты можешь!
В какой-то степени, конечно. Если вы будете стоять в 1 км от экрана, вы, вероятно, не сможете увидеть сам экран :)
Но как вы можете сказать? По весу группы - выглядит светлее, чем первая и темнее, чем вторая.
Теперь покажите кому-нибудь следующее изображение и скажите, что первая группа имеет древовидные пиксели. Затем спросите: сколько пикселей в других группах?
Изображение: ![[img]](https://i.stack.imgur.com/vNKNW.png)
Они, вероятно, скажут вам, что в этой группе есть 2 и 1 пиксель. Но это не так. Имеется одинаковое количество пикселей. Единственное отличие состоит в том, что эти пиксели имеют разный цвет.
Таким образом, на самом деле не имеет значения, сколько пикселей вы будете рисовать. Важно то, как они восприняли.
Но более того... Вы говорите "пиксель", а это точка? Нет! В большинстве случаев есть 3 точки разного цвета.
![введите здесь описание изображения](https://i.stack.imgur.com/1l9En.jpg)
Поэтому, если вы видите красный пиксель, вы можете быть уверены, что одна точка засветилась. Если вы видите желтый цвет - загораются 2 точки. И т.д. Судя по цвету можно даже точно сказать какие из точек составляющих пиксель выделены.
Но опять же - так ли это важно? Если вы просто скажете: «этот конкретный цвет означает (0,1)(1,1)(2,1), а этот конкретный цвет означает (3,1)(4,1) и т. д.». люди поймут ваш сюжет вне зависимости от мониторов и их разрешений.
Но, опять же, более того: когда вы рисуете пиксель на своем мониторе, это даже не один физический пиксель и не просто 3 точки. Ваш монитор имеет максимальное разрешение 8192*8192... так что больше 8 физических пикселей на один логический при разрешении 1920*1080. А это реально дает более 16 физических пикселей на один логический. Так ты можешь
Поместить 10 записей в одну коробку?
...как видите, "коробка" довольно большая. Вы можете поместить в него 16 записей. Физически. И логически вы можете добавить еще больше.
person
x00
schedule
16.04.2020