Python 在xlsx writer中通过散点图绘制线

Python 在xlsx writer中通过散点图绘制线,python,xlsx,xlsxwriter,Python,Xlsx,Xlsxwriter,这是一个散点图: 我所要做的只是简单地在点-.8(y轴)到.4(x轴)之间加一条线,它穿过槽(0,0),但这就是我最终得到的结果: 这是我的密码: diagonal = workbook.add_chart({'type':'line'}) ###for line worksheet.write(0,0,-.8) worksheet.write(1,0,.4) ###net and gain are just excel columns (for scatterplot) diag

这是一个散点图:

我所要做的只是简单地在点-.8(y轴)到.4(x轴)之间加一条线,它穿过槽(0,0),但这就是我最终得到的结果:

这是我的密码:

diagonal = workbook.add_chart({'type':'line'})

###for line 
worksheet.write(0,0,-.8)
worksheet.write(1,0,.4) 

###net and gain are just excel columns  (for scatterplot)
diagonal.add_series({'values':['sheet',0,0,1,0],'categories':net)
scatter = workbook.add_chart({'type':'scatter'})
scatter.add_series({'values':gain,'categories':net)

diagonal.combine(scatter)
worksheet.insert_chart(1,1,diagonal) 

如果在Excel中结合使用折线图和散点图,可能会得到相同的结果。有些令人困惑的是,Excel中的“折线”图表是基于固定的划分类别。您可能需要的是为该线绘制第二个“分散”系列

大概是这样的:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart_scatter.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': 1})

# Add the worksheet data that the charts will refer to.
worksheet.write_column('A1', [-0.2,  0.3, -0.4,  0.15, -0.6,  0.37])
worksheet.write_column('B1', [0.1,  -0.4, -0.5, -0.25,  0.1, -0.51])
worksheet.write_column('C1', [-0.8, 0.4])
worksheet.write_column('D1', [   0,   0])


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

# Add the scatter data.
chart.add_series({
    'categories': ['Sheet1', 0, 0, 5, 0],
    'values':     ['Sheet1', 0, 1, 5, 1],
    'marker': {
            'type': 'circle',
            'border': {'color': 'red'},
            'fill':   {'color': 'red'},
        },
})

# Add the straight lines series.
chart.add_series({
    'categories': ['Sheet1', 0, 2, 1, 2],
    'values':     ['Sheet1', 0, 3, 1, 3],
    'line':       {'color': 'blue'},
    'marker':     {'type': 'none'},
})

# Format the chart.
chart.set_x_axis({'min': -0.8, 'max': 0.4})
chart.set_legend({'none': True})

worksheet.insert_chart('D5', chart)


workbook.close()
输出:

这里的关键是先弄清楚您想在Excel中做什么,然后尝试将其应用到XlsxWriter程序中