2 轴 Reportlab 图

2024-03-06

我通过重叠条形图和线罐,成功在 ReportLab 中创建了一个 2 轴图。对于对类似内容感兴趣的任何人来说,这里是代码:

from reportlab.graphics.shapes import Drawing,colors
from reportlab.graphics.widgets.markers import makeMarker
from reportlab.graphics.charts.barcharts import VerticalBarChart
from reportlab.graphics.charts.lineplots import LinePlot

drawing = Drawing(400, 200)
data = [(13, 5, 20, 22, 37, 45, 19, 4)
        ]
noOfBars=len(data[0])

bc = VerticalBarChart()
bc.x = 50
bc.y = 50
bc.height = 125
bc.width = 300
bc.data = data

bc.valueAxis.valueMin = 0
bc.valueAxis.valueMax = 50        
bc.categoryAxis.categoryNames = ['Jan-99','Feb-99','Mar-99','Apr-99','May-99','Jun-99','Jul-99','Aug-99']
drawing.add(bc)

data3=[[(0.5, 4), (1.5, 3), (2.5, 4), (3.5, 6), (4.5, 4), (5.5, 2), (6.5, 5), (7.5, 6)]
       ]

lp = LinePlot()
lp.x = bc.x
lp.y = bc.y
lp.height = bc.height
lp.width = bc.width
lp.data = data3
lp.joinedLines = 1
lp.lines[0].symbol = makeMarker('Circle')
lp.lines[0].strokeColor=colors.blue
lp.lineLabelFormat = '%2.0f'
lp.xValueAxis.valueMin = 0
lp.xValueAxis.valueMax = noOfBars
lp.yValueAxis.valueMin = 0
lp.yValueAxis.valueMax = 8
lp.xValueAxis.visible=False
lp.yValueAxis.visible=False #Hide 2nd plot its Yaxis
drawing.add(lp)

y2Axis = YValueAxis()#Replicate 2nd plot Yaxis in the right
y2Axis.setProperties(lp.yValueAxis.getProperties())
y2Axis.setPosition(lp.x+lp.width,lp.y,lp.height)
y2Axis.tickRight=5
y2Axis.tickLeft=0

y2Axis.configure(data3)
y2Axis.visible=True
drawing.add(y2Axis)

renderPDF.drawToFile(drawing, '../tmp/barline.pdf')

唯一的问题是第二个有指向图表内部的标签。我希望他们成为图表!我找到了一个调整刻度的属性(y2Axis.tickRight=5,y2Axis.tickLeft=0),但 yvalue 标签位置仍然是个谜!

提前致谢


我最近做了这个。就像是

y2Axis.labels.dx = 10

应该可以帮到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2 轴 Reportlab 图 的相关文章

随机推荐

  • 通过 REST 调用停止 TeamCity 构建

    是否可以通过 REST API 取消当前正在运行的构建 我有一个集成 可以获取当前正在运行的构建 如果给定类型的构建失败 我想终止它们 我知道如何列出给定类型的失败构建 然后如何传递停止命令 从 TeamCity 8 1 开始 可以停止使用
  • 检查和删除 Java HashMap 中的元素

    我正在尝试使用 Java 中的 HashMap 检查并删除元素 它的键是我创建的称为 ClusterKey 的类型 它的值是我创建的称为 ClusterValue 的类型 这是导致问题的代码 ClusterKey ck new Cluste
  • EditText setText 不显示在对话框片段上

    我对 Android 应用程序开发有点陌生 不知道如何调试 所以我尝试在 DialogFragment 上执行 EditText setText 它在日志上打印出正确的字符串 但仍然显示基于 xml 文件的旧字符串 在此处输入项目 有什么办
  • 分支的 Git 日志占位符

    是否有任何占位符用于显示 git 提交所在的分支名称 pretty format 在 git log 和 git show 中 Like H用于提交哈希 Add the git log decorate它将显示分支 标签等 如果您还想记录以
  • 如何使用 dplyr::select_if 选择非数字列

    我需要选择所有非数字列 我可以使用轻松选择所有数字列select if mtcars gt select if is numeric 如果我想选择怎么办non numeric列 我试过 mtcars gt select if is nume
  • 文本分类方法?支持向量机和决策树

    我有一个训练集 我想使用分类方法根据我的训练集对其他文档进行分类 我的文档类型是新闻 类别是体育 政治 经济等 我完全理解朴素贝叶斯和KNN 但是SVM和决策树很模糊 我不知道我是否可以自己实现这个方法 或者有使用这种方法的应用程序吗 我可
  • 从母版页调用 Html.RenderPartial

    这是一个场景 假设我的网站有两个控制器 负责显示不同类型的内容 页面和文章 我需要将部分视图嵌入到我的母版页中 该母版页将列出按某些条件过滤的页面和文章 并显示在每个页面上 我无法在我的主页上设置模型 我是对的吗 如何使用 Html Ren
  • iPhone 应用程序在设备上崩溃,找不到文件

    我看到这个错误 无法读取 Developer Platforms iPhoneOS platform DeviceSupport 4 3 2 8H7 Symbols Developer usr lib libXcodeDebuggerSup
  • 无符号整数增量会导致未定义的已定义行为吗?

    读完后64 位上的 32 位无符号乘法会导致未定义的行为吗 https stackoverflow com q 27001604 1806289在 StackOverflow 上的问题中 我开始思考小型无符号类型上的典型算术运算是否会导致根
  • 如何正确使用九块图像

    我想创建某种看起来像这样的行图像 但我希望它能够随着屏幕尺寸和密度而缩放 所以读这篇文章http developer android com guide developing tools draw9patch html http devel
  • python virtualenv 未使用正确版本的 python

    我正在创建一个 Django 应用程序 需要我使用 python2 7 6 我的系统安装了 python3 4 1 所以我必须使用安装了 python2 7 的 virtualenv 我使用 Pycharm 安装了这样一个 virtuale
  • Rails 3:如何用英语以外的语言格式化日期?

    格式化一个Date用英语我做 Date today to s long ordinal gt September 28th 2011 如何用俄语 或任何其他语言 格式化日期 有的是Rails 中的国际化 API http guides ru
  • django-allauth - 使用 Gmail 帐户发送电子邮件验证

    我已经设置 allauth 为每个新注册用户发送一封电子邮件 以便可以验证他们的电子邮件 现在我使用 email backend 以便将电子邮件发送到终端 一切正常 但现在我想可以将其全部设置好 以便发送电子邮件 并且因为我 可能 在主机服
  • 如何使用 jQuery 在带有动画的表格中添加新行?

    这就是我正在做的在表中添加新行的操作 function expandAll myTableID gt tbody gt tr gt td nth child 2 gt div nth child 2 each function html t
  • android同时显示SIM卡和手机联系人

    在我的代码中 我应该只显示电话联系人 我遵循了之前的帖子 但仍然显示电话和 SIM 卡联系人 这是我的代码 Uri uri ContactsContract CommonDataKinds Phone CONTENT URI String
  • DateTime 为空字符串或 null?如何检查?

    Q 我想检查日期时间null value如果日期时间为空 则清空报告中的单元格 但我不知道如何执行此操作 它看起来像这样1 1 0001如果它是空的 我希望它是空单元格 这是我的数据集中的数据类型 这是我的列的表达式值 FormatDate
  • 是否有 IntelliJ Java Profiler [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 IntelliJ 是否有像 Matlab 那样的 Profiler 假设你有这个代码 a true i 0 while a if a i
  • ORA-04084: 无法更改此触发器类型的新值

    我正在尝试打开 pl sql 触发器 该触发器在故事更改时计算表中某些单元格的总数 这是代码 ALTER session SET nls date format dd mm yyyy CREATE OR REPLACE TRIGGER TO
  • Go 中可以有函数指针吗?

    我正在学习 Go 中的指针 并设法写出类似的东西 func hello fmt Println Hello World func main pfunc hello pfunc is a pointer to the function hel
  • 2 轴 Reportlab 图

    我通过重叠条形图和线罐 成功在 ReportLab 中创建了一个 2 轴图 对于对类似内容感兴趣的任何人来说 这里是代码 from reportlab graphics shapes import Drawing colors from r