Matplotlib: построение графика, тип линии, масштаб и индивидуальные цвета - PullRequest
0 голосов
/ 25 июня 2018

Я новичок в Python и Matplotlib, и я пытаюсь сделать линейный график со следующим кодом:

cov = np.array([164430.5, 84322.6, 83595.6])
p2 = np.array([92118.2, 30813.8, 36428.7])
p5 = np.array([16033.3, 15940.9, 16555.1])
s = np.array([315262.9, 176823.4, 182933.4])
ax = np.array([1, 8, 32])

plt.plot(ax, cov, 'r--', ax, p2, 'bs', ax, p5,'g^', ax, s, 'y*')

plt.show()

Пока я вижу, что график работает хорошо, но я не знаюкак я могу сделать следующее:

  1. Соединить символы плавной линией
  2. Измените ось X, чтобы видеть только 1, 8 и 32, но также с одинаковым расстоянием между ними.
  3. Измените шкалу на логарифмическую.
  4. Примените к каждой строке некоторые настраиваемые цвета в шестнадцатеричном формате.

Не могли бы вы вести меня?Большое спасибо!

1 Ответ

0 голосов
/ 27 июня 2018

Я отвечаю на свой вопрос, чтобы помочь кому-то другому, если он в этом нуждается!:

Соедините символы плавной линией

Изменить 'r--' на 'r-'.

Измените ось X, чтобы видеть только 1, 8 и 32, но также с одинаковым расстоянием между ними.

Наконец, я этого не сделал, но что-то примерно использует это: plt.xticks(ax, (1, 8, 32)). Единственное, чего я не могу, - это держать их на равном расстоянии.

Измените шкалу на логарифмическую.

plt.yscale('log')

Примените к каждой строке несколько настроенных цветов в шестнадцатеричном формате.

color = '#FF7373'

Я также изменил способ написания всего, потому что мне было понятнее. Вот и все вместе:

import numpy as np
import matplotlib.pyplot as plt

cov = np.array([164430.5, 84322.6, 83595.6])
p2 = np.array([92118.2, 30813.8, 36428.7])
p5 = np.array([16033.3, 15940.9, 16555.1])
s = np.array([315262.9, 176823.4, 182933.4])
ax = np.array([1, 8, 32])

plt.xticks(ax, (1, 8, 32))

line1, = plt.plot(ax, cov, '*-', label='cov', color = '#4F81BD') # blue
line2, = plt.plot(ax, p2, 'o-', label='p2',color = '#C0504D') # red
line3, = plt.plot(ax, p5, '^-', label='p5', color = '#9BBB59') # green
line4, = plt.plot(ax, s, 's-',  label='s', color = '#FF7373') # pink

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