Как я могу использовать больше цветов для точек на графике matplotlib? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть следующий минимальный рабочий пример:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import math
import numpy
import pylab as pl
import matplotlib.pyplot as plt

violet=[0.872,0.947,1.016,1.075,1.120]
transmission=[20.0,40.0,60.0,80.0,100.0]

fit_violet=numpy.polyfit(transmission,violet,1)
fitpol_violet=numpy.poly1d(fit_violet)
xfit=numpy.linspace(0.0,120.0)
yfit_violet=fitpol_violet(xfit)

pl.plot(xfit, yfit_violet, 'k', linewidth=2, label=u'Rectas de ajuste')
pl.plot(transmission, violet, 'bo', markersize=6, label=u'Valores experimentales')
pl.xlim(0.0,120.0)
pl.show()

Насколько я знаю, я могу выбрать только основные цвета для точек на графике, используя буквы 'b' для синего цвета 'г для красного и так далее.Но я хотел бы иметь возможность выбрать определенный оттенок фиолетового для этих точек.Можно ли использовать более широкий диапазон цветов для этого типа сюжета?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Вы будете использовать что-то вроде этого:

pl.plot(transmission, violet, "o", color="#EE82EE", markersize=6, label=u'Valores experimentales')

Предоставление:

enter image description here

0 голосов
/ 30 ноября 2018

Используя аргумент color, вы можете указать любой цвет в различных форматах.Они перечислены в документации .

Matplotlib дает вам 8 способов задания цветов,

  1. кортеж значений RGB или RGBA в [0, 1] (например, (0,1, 0,2, 0,5) или (0,1, 0,2, 0,5, 0,3)).RGBA - сокращение от Red, Green, Blue, Alpha;
  2. шестнадцатеричная строка RGB или RGBA (например, '# 0F0F0F' или '# 0F0F0F0F');
  3. строковое представление числа с плавающей точкойзначение в [0, 1] включительно для уровня серого (например, «0,5»);
  4. строка из одной буквы, т.е. одна из {'b', 'g', 'r', 'c','m', 'y', 'k', 'w'};
  5. имя цвета X11 / CSS4 ("html"), например, "blue";
  6. имя изxkcd color survey, с префиксом «xkcd:» (например, «xkcd: небесно-голубой»);
  7. спецификацией цвета «Cn», то есть «C», за которой следует одна цифра, которая является индексом вцикл свойств по умолчанию (matplotlib.rcParams ['axes.prop_cycle']);индексирование происходит во время создания художника и по умолчанию становится черным, если цикл не включает цвет.
  8. один из {'tab: blue', 'tab: orange', 'tab: green', 'tab: red',' tab: purple ',' tab: brown ',' tab: pink ',' tab: grey ',' tab: оливковый ',' tab: cyan '}, которые представляют собой цвета таблиц из категориальной палитры tab10(это цветовой цикл по умолчанию);

В своем вопросе вы ссылаетесь на номер 4 этого списка.Вместо этого рассмотрим, например,

plt.plot(x,y, color="violet", linewidth=2)
plt.plot(x,y, color="#ee82ee", linewidth=2)
plt.plot(x,y, color=(.9333, .5098, .9333), linewidth=2)

, все они ведут к одному и тому же фиолетовому цвету.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...