`xlsxwriter` 线透明度不起作用,除非颜色改变

Yuc*_*uca 4 python-3.x pandas xlsxwriter

从文档中我看到可以对图表区域使用透明度。我想知道 XlsxWriter 是否支持折线图的透明度。语法:

chart.add_series({
    'name': 'something',
    'categories': [<excel range>],
    'values': [<excel range>],
    'line':   {'color': 'yellow','transparency': 25},
})
Run Code Online (Sandbox Code Playgroud)

以黄色显示我的折线图。但是,没有透明度。

那么,折线图可以透明吗?如果是这样,正确的语法是什么?

我在 Python 3.6.3 上运行 Excel 2016。另外值得一提的是我如何使用 xlsxwriter:

 writer = pd.ExcelWriter(path, engine='xlsxwriter', datetime_format='dd-mmm-yy')
Run Code Online (Sandbox Code Playgroud)

更新:

从接受的答案运行代码会产生所需的输出: 在此处输入图片说明 但是,如果线条构造中没有使用颜色参数,则透明度将不起作用:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()

    # Create a new Chart object.
chart = workbook.add_chart({'type': 'line'})

# Write some data to add to plot on the chart.
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])

# Configure the charts. In simplest case we just add some data series.
chart.add_series({'values': '=Sheet1!$A$1:$A$5'})
chart.add_series({'values': '=Sheet1!$B$1:$B$5'})
chart.add_series({'values': '=Sheet1!$C$1:$C$5',
                  'line':   {'width':0.25,'transparency': 25}})

# Insert the chart into the worksheet.
worksheet.insert_chart('A7', chart)

workbook.close()
Run Code Online (Sandbox Code Playgroud)

作为检查,我替换了宽度参数的颜色参数,实际上我们的线显示了正确的宽度但没有透明度: 在此处输入图片说明

jmc*_*ara 5

它没有记录在案,但受支持:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()

# Create a new Chart object.
chart = workbook.add_chart({'type': 'line'})

# Write some data to add to plot on the chart.
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])

# Configure the charts. In simplest case we just add some data series.
chart.add_series({'values': '=Sheet1!$A$1:$A$5'})
chart.add_series({'values': '=Sheet1!$B$1:$B$5'})
chart.add_series({'values': '=Sheet1!$C$1:$C$5',
                  'line':   {'color': 'yellow',
                             'transparency': 25}})

# Insert the chart into the worksheet.
worksheet.insert_chart('A7', chart)

workbook.close()
Run Code Online (Sandbox Code Playgroud)

输出(看到网格线通过黄线部分可见):

在此处输入图片说明

更新:记录了。

更新 2:

但是,如果线条构造中没有使用颜色参数,则透明度将不起作用:

这是 Excel 中的默认行为。不指定颜色就无法打开透明度。这是因为在内部,透明度存储为颜色的 alpha 值的百分比,例如:

        <a:ln>
          <a:solidFill>
            <a:srgbClr val="4F81BD">
              <a:alpha val="50000"/>
            </a:srgbClr>
          </a:solidFill>
        </a:ln>
Run Code Online (Sandbox Code Playgroud)

这在 Excel 2015 及更高版本的界面中并不明显,尽管您可以看到当您更改透明度时,线条从“自动”更改为“实线”。在旧版本的 Excel 中,更清楚的是您必须在更改透明度之前指定纯色。

我将更新 XlsxWriter 文档以突出显示这一点。作为解决方法,用户应在更改透明度时指定颜色。