Могу ли я нарисовать точку в списке серого уровня в matplotlib.pyplot? [Дубликат]

Местоположение файла файла: C: \ test \ com \ company

Имя файла: Main.class

Полностью имя класса: com.company.Main

Командная строка:

java  -classpath "C:\test" com.company.Main

Обратите внимание, что путь класса не включает \ com \ company

53
задан Hooked 16 July 2013 в 19:46
поделиться

2 ответа

Вот пример

import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand(100)
y = np.random.rand(100)
t = np.arange(100)

plt.scatter(x, y, c=t)
plt.show()

Здесь вы устанавливаете цвет на основе индекса, t, который является всего лишь массивом [1, 2, ..., 100]. enter image description here [/g7]

Возможно, более понятным примером является немного более простой

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(100)
y = x
t = x
plt.scatter(x, y, c=t)
plt.show()

enter image description here [/g8]

Обратите внимание, что массив, который вы передаете как c, не нуждается в каком-либо конкретном порядке или типе, т. Е. Его не нужно сортировать или целые числа, как в этих примерах. Процедура построения графика масштабирует цветовую палитру таким образом, чтобы минимальные / максимальные значения в c соответствовали нижней / верхней части цветовой карты.

Colormaps

Вы можете изменить цветовую палитру, добавив

import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)

Импортирование matplotlib.cm является необязательным, так как вы также можете вызывать colormaps как cmap="cmap_name". Существует справочная страница цветовых палитров, показывающая, что каждый из них выглядит. Также знайте, что вы можете изменить цветовой код, просто называя его как cmap_name_r. Поэтому либо

plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
# or
plt.scatter(x, y, c=t, cmap="cmap_name_r")

будет работать. Примерами являются "jet_r" или cm.plasma_r. Вот пример с новым 1.5 colormap viridis:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(100)
y = x
t = x
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(x, y, c=t, cmap='viridis')
ax2.scatter(x, y, c=t, cmap='viridis_r')
plt.show()

Colorbars

Вы можете добавить панель цвета с помощью

plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()

Обратите внимание, что если вы явно используете цифры и подзаголовки (например, fig, ax = plt.subplots() или ax = fig.add_subplot(111)), добавление цветной панели может быть бит больше задействован. Хорошие примеры можно найти здесь здесь для одной подсписной панели и здесь для 2 подзаголовков 1 colorbar .

105
ответ дан Community 1 September 2018 в 07:45
поделиться

Чтобы добавить к ответу wflynny выше, вы можете найти доступные цветовые карты здесь

Пример:

import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.jet)

или, альтернативно,

plt.scatter(x, y, c=t, cmap='jet')
8
ответ дан Nathan 1 September 2018 в 07:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: