Возможно ли построить многострочную диаграмму на Python ggplot?

#python #pandas #python-ggplot

#python #pandas #python-ggplot

Вопрос:

Мне нужно построить 3 столбца фрейма данных Pandas на python ggplot с тем же индексом. Возможно ли это?

Спасибо

Ответ №1:

Я предполагаю, что вы хотите что-то в ggplot, что воспроизводит что-то подобное в matplotlib.

 import pandas as pd
df = pd.DataFrame({'a': range(10), 'b': range(5,15), 'c': range(7,17)})
df.plot()
  

ggplot ожидает, что данные будут в «длинном» формате, поэтому вам нужно немного изменить форму с melt помощью . В настоящее время он также не поддерживает построение индекса, поэтому его необходимо преобразовать в столбец.

 from ggplot import ggplot, geom_line, aes
import pandas as pd
df = pd.DataFrame({'a': range(10), 'b': range(5,15), 'c': range(7,17)})

df['x'] = df.index
df = pd.melt(df, id_vars='x')

ggplot(aes(x='x', y='value', color='variable'), df)   
      geom_line()
  

Комментарии:

1. Как вы можете добавить сюда метки для обозначения переменных цветов?

Ответ №2:

С последней версией ggplot это стало еще проще:

 from ggplot import ggplot, geom_line, aes
import pandas as pd

df = pd.DataFrame({'a': range(10), 'b': range(5, 15), 'c': range(7, 17)})
df['x'] = df.index
ggplot(aes(x='x'), data=df)  
    geom_line(aes(y='a'), color='blue')  
    geom_line(aes(y='b'), color='red')  
    geom_line(aes(y='c'), color='green')
  

введите описание изображения здесь

Комментарии:

1. Возможно ли иметь вторичную ось? Я видел ссылки на sec.axis, но я не могу заставить его работать в среде python

2. Не уверен — возможно, ищите вдохновение в R-руководствах для ggplot или в примерах для Python ggplot?

3. Да, сейчас я с этим борюсь. У вас возникли проблемы с вашим пакетом matplotlib после установки ggplot?

4. Честно говоря, в итоге я использовал matplotlib для множества графиков, так как с matplotlib вы можете делать все, что захотите. Я думаю, что это почти стоит того, чтобы изучить новый API.