#python #csv #plot #pandas #save
#python #csv #график #pandas #Сохранить
Вопрос:
Используя pandas, я могу в трех простых строках создать график из данных:
2014-07-06T10:00:00,12.6,12.9
2014-07-06T10:10:00,12.5,13.1
2014-07-06T10:20:00,12.5,13.1
import pandas as pd
plotdata = pd.read_csv('power_log.csv',header=None,names=['DateTime','ATS1','ATS2'],parse_dates = True, index_col = [0])
plotdata.plot()
Однако я не могу сохранить это в файл с plotdata.savefig(). Функция Savefig() — это функция matplotlib, которая, по-видимому, не связана с pandas.
Какие есть варианты:
Я что-то пропустил в перенаправлении графика в файл в pandas?
Есть ли ‘typecast’, чтобы заставить savefig работать (я не думаю, что это правильный язык в Python)
Проще ли просто использовать другой модуль, отличный от pandas?
Спасибо
Ответ №1:
Простой однострочный:
df.plot().get_figure().savefig('figure.png')
Ответ №2:
a = plotdata.plot()
a.figure.savefig("output.png")
РЕДАКТИРОВАТЬ: (2017)
полный пример — все еще работает (без TypeError: 'Figure' object is not callable
)
import pandas as pd
df = pd.DataFrame([1,3,2])
a = df.plot()
a.figure.savefig("output.png")
Комментарии:
1. Это неправильно:
TypeError: 'Figure' object is not callable
2. @mikal94305 что не так? Вы показываете какую-то ошибку без вашего кода и ожидаете ответа? Создайте новую запись в Stackoverflow, если у вас возникли проблемы с вашим кодом. Кстати: этому вопросу уже 3 года, и модуль мог измениться. РЕДАКТИРОВАТЬ: я проверил код, и он все еще работает для меня.
3. @mikal94305 возможно, вы допустили ошибку и использовали
figure("output.png")
— это должно выдать вам ошибкуTypeError: 'Figure' object is not callable