Несколько функций в одном графике - PullRequest
0 голосов
/ 20 февраля 2019

Итак, у меня есть numpy.ndarray под названием CT с формой (10, 500).

Каждая строка является функцией и определена для переменных x, называемых Gm.Gm это numpy.ndarray с формой (1500).

Мне нужно отобразить 10 функций в матрице КТ (как функция Gm) в одном графике и попробовать следующее:

# consumption functions over time    
plt.figure(figsize=(10,10))

TimeSteps = CT.shape[0]

for t in range(0,TimeSteps):
    plt.plot(Gm,CT[t].reshape(1,DiscG),'go',label='t')
plt.show()

Это работает, но все графики показаны содин и тот же цвет (зеленый), и невозможно различить, если график равен t = 0, 1, 2 и т. д.сделать возможным пометить их и поместить в текстовое поле.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

ОК - нашел другой более простой способ ... просто транспонировать ввод:

plt.figure(figsize=(10,10))
plt.plot(Gm.transpose(),CT.transpose(),marker='o')
plt.show()

Таким образом, вся функция получает уникальный цвет, и кажется, что он решен.Так что мое первоначальное предположение о запуске цикла for было слишком сложным.

0 голосов
/ 20 февраля 2019

Обычно, когда задают вопрос, обычно есть минимальный и проверяемый пример .Вопросы, которые вы задали как проблемы, на самом деле являются примерами кода, работающего так, как задумано, но не так, как вы этого хотите.Вот пример разбросанных точек с разными цветами и разными надписями, когда вы задали свой вопрос и ответили мне и @DavidG.

import matplotlib.pyplot as plt
import numpy as np
# dummy data
x = np.random.rand(10, 100)

fig, ax = plt.subplots()
[ax.plot(xi, marker = 'o', label = idx) for idx, xi in enumerate(x)]
ax.legend()
fig.show()

enter image description here

Цветовые циклы здесь основаны на стандартной цветовой карте, используемой matplotlib, если вы хотите использовать определенные цвета или изменить стандартные циклы, пожалуйста,посмотрите документацию, предоставленную matplotlib

...