Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x `xlsxwriter`除非更改颜色,否则线条透明度不起作用_Python 3.x_Pandas_Xlsxwriter - Fatal编程技术网

Python 3.x `xlsxwriter`除非更改颜色,否则线条透明度不起作用

Python 3.x `xlsxwriter`除非更改颜色,否则线条透明度不起作用,python-3.x,pandas,xlsxwriter,Python 3.x,Pandas,Xlsxwriter,从文档中,我看到可以对图表区域使用透明度。我想知道XlsxWriter是否支持线条图的透明度。语法: chart.add_series({ 'name': 'something', 'categories': [<excel range>], 'values': [<excel range>], 'line': {'color': 'yellow','transparency': 25}, }) 更新: 从接受的答案运行代码,得到所需

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

chart.add_series({
    'name': 'something',
    'categories': [<excel range>],
    'values': [<excel range>],
    'line':   {'color': 'yellow','transparency': 25},
})
更新: 从接受的答案运行代码,得到所需的输出: 但是,如果线条构造中没有使用颜色参数,则透明度将不起作用:

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()
作为检查,我将颜色参数替换为宽度参数,事实上,我们的行显示了正确的宽度,但没有透明度:

它没有文档记录,但受支持:

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()
输出(请参见通过黄线部分可见网格线):

更新:现在是

更新2:

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

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()
这是Excel中的默认行为。如果不指定颜色,则无法启用透明度。这是因为在内部,透明度存储为颜色alpha值的百分比,例如:

        <a:ln>
          <a:solidFill>
            <a:srgbClr val="4F81BD">
              <a:alpha val="50000"/>
            </a:srgbClr>
          </a:solidFill>
        </a:ln>

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


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

interest@jmcnamara但是以下代码不会生成具有透明度的折线图:`chart=workbook.add_chart({'type':'line'})chart.add_series({'name':'Russell 2000','categories':['Sheet1',1,24+偏移,绑定,24+偏移],'values':['Sheet1',1,25+偏移,绑定,25+偏移],'line':{'width':1.5',transparency':25},'y2_轴':y2_轴,})`我会粘贴excel结果,但我是一个noob lol。作为检查,我修改了宽度。透明度参数保持为0,但线宽实际上是1.5 ptHi@jmcnamara。对此有何想法?正如我所提到的,鉴于我当前的实现,您的解决方案不起作用我们已经观察到,
透明度
参数不起作用ect,除非还使用了
color
参数。我添加了一个bug报告:添加了关于bug报告的更新。基本上这是Excel的默认行为。