如何将Finplot绘制的单张或多张图表保存为PDF文件?
解决Finplot图表保存为PDF的方法
Finplot基于PyQt5开发,你可以通过两种方式将绘制的OHLC图表保存为PDF:
方法一:手动通过窗口菜单保存
Finplot弹出的独立图表窗口自带打印/导出功能,直接操作即可:
- 点击窗口左上角的菜单栏(部分系统需右键窗口标题栏调出菜单)
- 选择「Print...」选项,在弹出的对话框中选择「Save as PDF」作为输出目标,设置保存路径后完成导出。
方法二:通过代码自动保存
如果需要无需手动操作,用代码实现自动保存,可借助PyQt的打印模块完成。修改你的代码如下:
import finplot as fplt import yfinance as yf import pandas as pd from PyQt5.QtPrintSupport import QPrinter symbol="aapl" aapl= yf.Ticker(symbol) aapl_historical = aapl.history(start="2023-10-28", end="2023-11-29", interval="1d") prices=aapl_historical z3=prices.copy(deep=True) z3['Date']=z3.index z3['Date1']= pd.to_datetime(z3['Date']) z3=z3.reset_index(drop=True) fplt.candlestick_ochl(z3[['Date1','Open','Low','High','Close']]) # 获取Finplot的主窗口对象 win = fplt.get_current_widget().window() # 配置PDF输出参数 printer = QPrinter(QPrinter.HighResolution) printer.setOutputFormat(QPrinter.PdfFormat) printer.setOutputFileName('aapl_ohlc.pdf') # 设置PDF保存路径和文件名 # 执行保存操作 win.print(printer) # 若需手动选择保存路径,可替换为以下代码: # from PyQt5.QtPrintSupport import QPrintDialog # dialog = QPrintDialog(printer) # if dialog.exec_() == QPrintDialog.Accepted: # win.print(printer) fplt.show()
注意事项
- 确保环境已安装
PyQt5,若未安装可执行pip install pyqt5完成安装 - 在Spyder中运行时,自动保存逻辑会在弹出图表窗口前执行,不影响窗口显示
内容的提问来源于stack exchange,提问作者rumrum
相关产品推荐
相关产品推荐

