Более мелкие цвета по умолчанию в matplotlib
Стандартные цвета, используемые в matplotlib (пример здесь: http://matplotlib.org/examples/pylab_examples/pie_demo.html), являются простыми и уродливыми. Я также заметил, что если вы планируете более 5-6 разных серий в одном сюжете, matplotlib начинает повторять цвета.
Я видел некоторые великолепные графики, выходящие из других пакетов визуализации (на других языках по умолчанию), которые могут иметь 5-6 разных серий, покрытых одним цветом в разных оттенках. У кого-нибудь есть хороший цвет, который можно использовать в matplotlib? И каким образом использовать matplotlib по умолчанию?
Ответы
Ответ 1
Вы можете использовать Таблицы стилей Matplotlib. Он был перенесен из библиотеки mpltools, которая имеет style, который переопределяет параметры matplotlib rc.
В качестве примера см. использование стиля ggplot и Руководство пользователя Matplotlib.
![image]()
Ответ 2
Посмотрите prettyplotlib библиотеку, которая недавно указала мне друзьями, - которая изменяет matplotlib, чтобы лучше совместить с идеи Эдвард Туфте, а также некоторые очень тщательно изученные работы Cynthia Brewer о восприятии цвета.
Ответ 3
Вопрос был задан 2 года назад, и сегодня гораздо легче получить лучший стиль для вашего заговора. Для этого вам даже не нужны внешние пакеты. Как упоминалось в своем комментарии в @asmier, функциональность mpltools.style была интегрирована в Matplotlib 1.4, поэтому вы можете переключать стили с помощью
plt.style.use(style_name)
Например:
import matplotlib.pyplot as plt
import numpy as np
plt.style.use('ggplot')
num_lines = 6
ax = plt.subplot(111)
for i in range(num_lines):
x = np.linspace(0,20,200)
ax.plot(x,np.sin(x)+i)
plt.show()
![введите описание изображения здесь]()
Вы можете перечислить все доступные стили с помощью:
print plt.style.available
В Matplotlib 1.5 добавлено несколько новых стилей, в том числе много стилей из проекта Seaborn:
plt.style.use('seaborn-dark-palette')
![введите описание изображения здесь]()
Ответ 4
В пакете Seaborn (на основе Matplotlib) есть красивые стили графа по умолчанию, и я обнаружил, что это хороший способ создания привлекательного цветового цикла,
Здесь есть приятное обсуждение цветовых палитр:
https://stanford.edu/~mwaskom/software/seaborn/tutorial/color_palettes.html
Следующий код демонстрирует, как вы можете автоматически выбрать новый color_cycle для простой строки:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
num_lines = 6
ax = plt.subplot(111)
ax.set_color_cycle(sns.color_palette("coolwarm_r",num_lines))
for i in range(num_lines):
x = np.linspace(0,20,200)
ax.plot(x,np.sin(x)+i)
plt.show()
![введите описание изображения здесь]()
Если вы хотите просто изменить linecolors и не использовать другие морские предустановки, такие как серый фон, просто импортируйте seaborn с помощью
import seaborn.apionly as sns
Ответ 5
Вы можете настроить файл .matplotlibrc
. На самом деле очень прокомментированный пример - здесь. Мне кажется, что вариант, который вы хотите изменить, - axes.color_cycle
. У меня нет никаких советов о том, что сделать его для более красивого интерфейса. Это слишком субъективный Stack Overflow;-) (и я доволен настройками по умолчанию)
Ответ 6
Вы можете использовать colormap функциональность matplotlib.
Хорошим примером является этот вопрос. Вы можете показать свои параметры цветовой схемы используя этот script.
Ответ 7
Для более насыщенного набора цветов, который можно использовать с matplotlib
, выберите palettable, в котором представлена замечательная палочки Wes Anderson.
$ pip install palettable
$ python
>>> from palettable.colorbrewer.qualitative import Dark2_7