Показать все линии в линейном сюжете matplotlib - PullRequest
0 голосов
/ 02 декабря 2018

Как мне вывести другую линию на передний план или показать оба графика вместе?

plot_yield_df.plot(figsize=(20,20))

output

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Проблема

Линии построены в порядке их появления в кадре данных.Так, например,

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

a = np.random.rand(400)*0.9
b = np.random.rand(400)+1
a = np.c_[a,-a].flatten()
b = np.c_[b,-b].flatten()
df = pd.DataFrame({"A" : a, "B" : b})

df.plot()

plt.show()

enter image description here

Здесь значения "B" скрывают значения от "A".

Решение 1: Обратный порядок столбцов

Решение состоит в том, чтобы изменить их порядок

df[df.columns[::-1]].plot()

enter image description here

ТоТакже изменился порядок в легенде и цветовой кодировке.

Решение 2: Обратный z-порядок

Поэтому, если это нежелательно, вы можете вместо этого поиграть с zorder.

ax = df.plot()

lines = ax.get_lines()
for line, j in zip(lines, list(range(len(lines)))[::-1]):
    line.set_zorder(j)

enter image description here

0 голосов
/ 02 декабря 2018

Если данные графика перекрываются, то один из способов просмотра обеих данных - увеличение ширины линии вместе с прозрачностью обработки, как показано:

plt.plot(np.arange(5), [5, 8, 6, 9, 4], label='Original', linewidth=5, alpha=0.5)
plt.plot(np.arange(5), [5, 8, 6, 9, 4], label='Predicted')
plt.legend()

plt

Сюжет - другой хороший способ.

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