Как преобразовать сюжет панд в изображение

#python #django #pandas #matplotlib

Вопрос:

Я работаю над приложением, которое сможет отображать график показателей компании в акциях, я хотел превратить график панды этой компании в изображение без его сохранения. Может кто-нибудь сказать мне, что делать?

 from fastquant import get_pse_data
import matplotlib.pyplot as plt
import pandas as pd
    
df = get_pse_data(symbol, '2019-01-01', '2020-01-01')
ma30 = df.close.rolling(30).mean()
close_ma30 = pd.concat([df.close, ma30], axis=1).dropna()
 

Я на самом деле подумываю о добавлении этого сюжета, полученного из фрейма данных pandas close_ma30 = pd.concat([df.close, ma30], axis=1).dropna() , в мой html-код:

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

Я хочу создать функцию python, которая позволит мне возвращать ее в виде изображения для кода django. Спасибо вам за помощь!

Ответ №1:

Вы можете использовать фрейм данных-изображение для преобразования графика панд в изображение, которое вы можете посетить https://pypi.org/project/dataframe-image/. dataframe_image имеет возможность экспортировать как обычные, так и стилизованные кадры данных в виде изображений из скрипта Python. Передайте свой обычный или стилизованный кадр данных в функцию экспорта вместе с местоположением файла, чтобы сохранить его в виде изображения.

 >>> import dataframe_image as dfi
>>> dfi.export(df_styled, 'df_styled.png')
 

Вы также можете экспортировать непосредственно из фрейма данных или стилизованного фрейма данных, используя методы dfi.export и export_png соответственно.

 >>> df.dfi.export('df.png')
>>> df_styled.export_png('df_styled.png)
 

Как библиотека Python
Dataframe_image также можно использовать вне ноутбука в качестве обычной библиотеки Python. В отдельном скрипте Python импортируйте пакет dataframe_image и передайте имя файла вашего ноутбука функции преобразования.

 >>> import dataframe_image as dfi
>>> dfi.convert('path/to/your_notebook.ipynb',
                to='pdf',
                use='latex',
                center_df=True,
                max_rows=30,
                max_cols=10,
                execute=False,
                save_notebook=False,
                limit=None,
                document_name=None,
                table_conversion='chrome'
                chrome_path=None,
                latex_command=None,
                output_dir=None,
                )
 

По умолчанию новые файлы будут сохранены в том же каталоге, в котором находится записная книжка. Не выполняйте эту команду в той же записной книжке, которая преобразуется.

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

 dataframe_image --to=pdf "my notebook with dataframes.ipynb"
 

Поиск в Google Chrome
Для работы dataframe_image у вас должен быть установлен Google Chrome (или Brave). Путь к Chrome должен быть найден автоматически. Если Chrome не находится в стандартном расположении, установите его с помощью параметра chrome_path.

Использование matplotlib вместо Chrome Если у вас не установлен Chrome или вы не можете заставить его работать должным образом, вы также можете использовать matplotlib для преобразования кадров данных в изображения. Выберите этот параметр, установив для параметра table_conversion значение «matplotlib».

Публикация в среде, тесно связанной с этим пакетом, является jupyter_to_medium, который публикует ваши записные книжки напрямую и быстро в виде сообщений в блоге среднего уровня.

Зависимости У вас должны быть установлены следующие библиотеки Python.