【问题标题】:Render pygal charts without borders无边界渲染 pygal 图表
【发布时间】:2016-05-13 23:33:49
【问题描述】:

我正在寻找使用pygal 呈现无边界图表的方法。我在文档中没有发现任何有用的东西。但是,我在查看示例时发现了一个非常奇怪的情况。让我们看看:

在此示例中,您可以看到图表在 y 轴上没有框架,但没有具体的语句来实现这一点。现在看看另一个例子:

在这种情况下,示例显示了如何截断 x 轴的标签,但由于某种原因 y 轴中有边框,并且再次没有具体说明。

发生了什么?我该怎么处理?我需要知道无边框渲染图表的方式,有人知道吗?非常感谢。

【问题讨论】:

    标签: python charts pygal


    【解决方案1】:

    在 graph/graph.py 的代码中,仅当有 x_labels 时才打印出 y 轴。

    图表中的边框似乎是指网格线。因此,如果您想在您正在构建的折线图中删除它们,您可以将两个函数添加到 graph/line.py 中的 Line 类或您想从中删除它们的任何其他图表类型。

    只需放入一个新的 CustomLine 类,您将在其中构建您的应用程序,如下所示:

    import pygal
    
    
    class CustomLine(pygal.Line):
    
        def __init__(self, *args, **kwargs):
            super(CustomLine, self).__init__(*args, **kwargs)
    
        def _x_axis(self):
            pass
    
        def _y_axis(self):
            pass
    
    
    chart = CustomLine()
    chart.add('Series 1', [0, 0.005, 0.002])
    chart.render_response()
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢!这很有用,因为现在我可以禁用左侧网格线,但我的下一个问题是:有没有办法在不禁用 x 轴的情况下禁用 y 轴?
    • 假设您想将 x_labels 包含在 Pygal 中,那么答案是否定的。但是,您可以在 graph/graph.py 中稍微修改一下代码。 Y 轴是在 _x_axis 函数中创建的,并且当 self.x_labels 为 True 时。您可以在第 163 行注释掉这部分: self.svg.node(guides, 'path', d='M%f %fv%f' % (x or 0, 0, self.view.height), class_= '%sline' % '指南')
    • 非常感谢!!真的很有用
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多