2024山东大学创新项目实训_14

研报结果的绘制2

创建一个PDF文档,并在其中插入表格和图像。

1. 定义表格样式 table_style

  • TableStyle: 定义了表格的样式。
  • ('BACKGROUND', (0, 0), (-1, -1), colors.white): 将整个表格的背景颜色设为白色。
  • ('FONT', (0, 0), (-1, -1), 'Helvetica', 8): 设置表格中所有单元格的字体为 Helvetica,字号为 8。
  • ('FONT', (0, 0), (-1, 0), 'Helvetica-Bold', 12): 设置表格第一行的字体为粗体 Helvetica,字号为 12。
  • ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'): 将表格中所有单元格的垂直对齐方式设置为居中。
  • ('ALIGN', (0, 1), (0, -1), 'LEFT'): 将表格第一列(除标题行外)的水平对齐方式设置为左对齐。
  • ('ALIGN', (1, 1), (1, -1), 'RIGHT'): 将表格第二列(除标题行外)的水平对齐方式设置为右对齐。
  • ('LINEBELOW', (0, 0), (-1, 0), 2, colors.black): 在表格的第一行下方添加一条黑色粗线,用作标题栏的分隔线。

2. 准备数据和插入表格

Rating 和 Target Price 表格
  • full_length: 计算表格的宽度,即右栏宽度减去两倍边距。
  • rating, _ = ra.get_analyst_recommendations(): 获取分析师的评级。
  • target_price: 目标价格,这里设为 None
  • 如果 target_price 不为 None,则创建包含评级和目标价格的表格;否则,只创建包含评级的表格。
  • col_widths: 定义每列的宽度。
  • Table(data, colWidths=col_widths): 创建表格对象。
  • table.setStyle(table_style): 应用之前定义的表格样式。
  • content.append(table): 将表格添加到内容列表中。
Key Data 表格
  • key_data = ra.get_key_data(): 获取关键数据。
  • 构建包含标题行的数据列表 data,以及键值对数据。
  • Table(data, colWidths=col_widths): 创建表格对象。
  • table.setStyle(table_style): 应用表格样式。
  • content.append(table): 将表格添加到内容列表中。

3. 插入 Matplotlib 图像

历史股价和历史 PE & EPS 图像
  • plot_path = ra.get_stock_performance(): 获取历史股价图像的路径。
  • Image(plot_path, width=width, height=height): 创建图像对象,并指定图像的宽度和高度。
  • content.append(Image(plot_path, width=width, height=height)): 将图像添加到内容列表中。

4. 创建新页和添加表格

  • content.append(NextPageTemplate('TwoColumns_p2')): 添加下一页模板,用于显示另一页内容。
  • content.append(PageBreak()): 插入分页符,确保在新页面开始添加内容。

5. 总结

以上代码段展示了如何使用 ReportLab 在 PDF 文档中创建表格和插入 Matplotlib 生成的图像。通过定义表格样式和布局,使得文档内容可以清晰、有序地展示,并通过图像插入增加了数据的可视化效果,使得生成的报告更加丰富和具有说服力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值