【问题标题】:How to display the y_axis name of a xlsxwriter column chart horizontally, at the top of the axis?如何在轴的顶部水平显示 xlsxwriter 柱形图的 y_axis 名称?
【发布时间】:2021-04-23 01:35:55
【问题描述】:

我正在使用 XlsxWriter 创建柱形图,y 轴名称水平显示在轴的顶部。 y 轴名称的默认方向似乎是垂直的,从下到上阅读。

所以我使用名称字体旋转来尝试将其水平放置,从左到右阅读。这对于从 -90 到 90 的任何旋转角度都可以正常工作,除了 0(零),它应该是水平方向。似乎当旋转设置为 0(零)时,它会被忽略,并且名称是垂直显示的。

实现视觉上可接受的结果的解决方法是将旋转设置为 1 或 -1。这适用于短名称,但对于较长的名称,文本不在 0(零)度 - 水平位置开始变得明显。

我正在使用 Python 版本 Python 3.8.3、xlsxwriter 版本 1.2.9 和 Excel 365。

下面是一些演示问题的代码:


workbook = xlsxwriter.Workbook('test.xlsx')

worksheet = workbook.add_worksheet()
chart = workbook.add_chart({'type': 'column'})

data = [
    [1, 2, 3, 4, 5],
    [2, 4, 6, 8, 10],
    [3, 6, 9, 12, 15],
]

worksheet.write_column('A1', data[0])
worksheet.write_column('B1', data[1])
worksheet.write_column('C1', data[2])

chart.add_series({'values': '=Sheet1!$A$1:$A$5'})

chart.set_title({'name': 'Some Title', 
                 'name_font': {'rotation': 0}})

chart.set_y_axis({'visible': False,
                  'name': 'Y Axis', 
                  'name_font': {'size': 14, 'bold': False, 'italic': True, 'rotation': 0},
                  'name_layout': {'x': 0.025, 'y': 0.075}})

worksheet.insert_chart('E1', chart)

workbook.close()

关于如何水平显示 y 轴名称的任何想法?

【问题讨论】:

    标签: python excel charts xlsxwriter


    【解决方案1】:

    不幸的是,这是由于一个小错误。我已经在 XlsxWriter release 1.4.0 中修复了它。

    修复到位后,您的(非常详细的)程序的输出符合预期:

    【讨论】:

    • 效果很好!谢谢!
    • 新版本非常适合我的应用程序。再次感谢!对于您的信息@jmcnamara,我做了一些额外的测试,当通过'name': '=A1''name': '=Sheet1!A1' 等公式动态设置y_axis 名称(而不是'name': 'Y Axis' 等字符串)时,结果似乎有点不一致。
    • @frnd.frts,你是对的。也许打开一个错误报告。我会在此期间进行修复。
    • 好的。我已经将修复程序推送到 main。请注意,您应该在公式中包含工作表名称,就像 Excel 一样:'name': '=Sheet1!$A$1'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多