代码之家  ›  专栏  ›  技术社区  ›  thomas.mac

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

  •  1
  • thomas.mac  · 技术社区  · 6 年前

    这是散点图:

    enter image description here

    我所要做的只是通过点添加一条线-。8(y轴),至。4(x轴),它穿过槽(0,0),但这就是我最终得到的结果:

    enter image description here

    这是我的代码:

    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) 
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   jmcnamara    6 年前

    如果在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()
    

    输出:

    enter image description here

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