gpt4 book ai didi

python - Pygal 图表中的居中对齐标题

转载 作者:行者123 更新时间:2023-11-28 16:59:52 24 4
gpt4 key购买 nike

我正在 Pygal 中制作折线图。我想将图表的标题居中,但我不知道该怎么做。

我尝试查看 Pygal 文档,但找不到任何与标题对齐相关的内容。这是我拥有的:

enter image description here

custom_style = Style(
background = 'transparent',
font_family='Avenir',
colors = ['#14A1FF', '#14FF47'],
opacity = .5)

chart = pygal.Line(
style=custom_style,
print_values=True,
interpolate='hermite',
fill=True, dots_size=4,
show_y_guides=False,
legend_at_bottom=True,
legend_at_bottom_columns=2)

chart.title = "Rubik's Cube Solve Times Recorded Over Five Days"
chart.x_labels = ["1", "2", "3", "4", "5"]
chart.x_title = "Day"
chart.y_title = "Seconds"
chart.add("Average of 100", ao100)
chart.add("Average of 25", ao25)
chart.render_to_file('times.svg')

最佳答案

如评论中所述,图形标题相对于图形而不是轴居中。这种行为是硬编码在渲染函数中的,没有任何配置选项可以改变它。

一种解决方法是创建您自己的类,该类继承自 pygal.Line 并覆盖呈现标题(不是很大)的函数:

class MyLineChart(pygal.Line):

def __init__(self, *args, **kwargs):
super(MyLineChart, self).__init__(*args, **kwargs)

def _make_title(self):
"""Make the title"""
if self._title:
for i, title_line in enumerate(self._title, 1):
self.svg.node(
self.nodes['title'],
'text',
class_='title plot_title',
x=self.margin_box.left + self.view.width / 2, # Modified
y=i * (self.style.title_font_size + self.spacing)
).text = title_line

上面的_make_title 函数是直接从the source code for the Graph class 复制的(Line 本身继承自的类)。唯一的变化是在注释“修改”指示的行中,这是从呈现 x 轴标签的函数中获取的(因为它以轴为中心)。

有了它,您可以将 chart = pygal.Line 替换为 chart = MyLineChart,但保留其余代码。您可能还想将类的名称更改为更有意义的名称。

关于python - Pygal 图表中的居中对齐标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55320324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com