#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.