Код, который вы опубликовали, не запускается. По крайней мере, нет x
, чтобы взять len()
из. Так что, вероятно, это должно выглядеть так:
import matplotlib.pyplot as plt
y = [1]*19200
x = range(0,19200)
plt.scatter(x,y)
plt.show()
Но таким образом, это просто dr aws строка.
Даже если вы Если бы у вас был монитор с 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()
Это дает:
Mono chrome версия:
Вы можете играть с ним здесь
Поскольку изображения даже меньше, чем 1920 Я играл с L
, чтобы сделать их более яркими на случайных данных.
Обновление:
В первой группе пикселей есть 3 точки , И во втором есть одна точка.
Изображение:
Сколько очков вы видите в третьей группе?
Если у вас хорошее зрение и большой экран, вы увидите, что есть 2 очка.
Но что, если у вас плохое зрение, маленький экран или вы просто отойдете от экрана. Можете ли вы еще сказать, сколько очков там? Да, вы можете!
В некоторой степени, конечно. Если вы будете стоять в 1 км от экрана, вы, вероятно, не сможете увидеть сам экран:)
Но как вы можете это определить? По весу группы - он выглядит на светлее , чем первый, и темнее , чем второй.
Теперь покажите кому-нибудь следующее изображение и скажите, что первая группа имеет пиксели дерева. Затем спросите: сколько пикселей в других группах?
Изображение:
Они, вероятно, скажут вам, что в этой группе 2 и 1 пикселя. , Но это не правда. Есть такое же количество пикселей . Разница лишь в том, что эти пиксели имеют разного цвета .
Таким образом, на самом деле не имеет значения, сколько пикселей вы будете рисовать. Важно то, как они воспринимаются.
Но более того ... Вы говорите «пиксель», но это точка? Нет! В большинстве случаев имеются 3 точки разного цвета.
Так что если вы видите красный пиксель вы можете быть уверены, что есть одна точка, чтобы осветлить. Если вы видите желтый - есть 2 точки, которые загораются. Et c. Судя по цвету, вы даже можете точно сказать, какие из точек, составляющих пиксель, выделены.
Но опять же - это действительно имеет значение? Если вы просто скажете: «этот конкретный цвет означает (0,1) (1,1) (2,1), а этот конкретный цвет означает (3,1) (4,1) и т. Д. c»). люди будут понимать ваш график независимо от мониторов и их разрешений.
Но, опять же, более того: когда вы рисуете пиксель на своем мониторе, это даже не один физический пиксель, а не только 3 точки. Максимальное разрешение вашего монитора составляет 8192 * 8192 ... поэтому для одного логического по разрешению 1920 * 1080 существует более 8 физических пикселей. И это на самом деле дает более 16 физических пикселей для одного логического. Так что вы можете
Поместить 10 x записей в одну коробку?
... как видите, "коробка" довольно большая. Вы можете поместить в нее 16 записей. Физически . И логически вы можете добавить еще больше.