openpyxl3.0官方文档(19)—— 添加第二个轴

添加第二个轴实际上涉及创建第二个图表,该图表与第一个图表共享一个公共x轴,但具有单独的y轴。

    from openpyxl import Workbook
    from openpyxl.chart import (
        LineChart,
        BarChart,
        Reference,
        Series,
    )
    
    wb = Workbook()
    ws = wb.active
    
    rows = [
        ['Aliens', 2, 3, 4, 5, 6, 7],
        ['Humans', 10, 40, 50, 20, 10, 50],
    ]
    
    for row in rows:
        ws.append(row)
    
    c1 = BarChart()
    v1 = Reference(ws, min_col=1, min_row=1, max_col=7)
    c1.add_data(v1, titles_from_data=True, from_rows=True)
    
    c1.x_axis.title = 'Days'
    c1.y_axis.title = 'Aliens'
    c1.y_axis.majorGridlines = None
    c1.title = 'Survey results'
    
    
    # Create a second chart
    c2 = LineChart()
    v2 = Reference(ws, min_col=1, min_row=2, max_col=7)
    c2.add_data(v2, titles_from_data=True, from_rows=True)
    c2.y_axis.axId = 200
    c2.y_axis.title = "Humans"
    
    # Display y-axis of the second chart on the right by setting it to cross the x-axis at its maximum
    c1.y_axis.crosses = "max"
    c1 += c2
    
    ws.add_chart(c1, "D4")
    
    wb.save("secondary.xlsx")
    

这将生成一个组合的折线图和条形图,看起来像这样:在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 PySimpleGUI 将您提供的程序制作成可视化程序的代码示例: ```python import pandas as pd from openpyxl import Workbook from openpyxl.chart import LineChart, Reference import PySimpleGUI as sg # 设置 PySimpleGUI 的主题 sg.theme('LightBlue3') # 创建 GUI 窗口的布局 layout = [ [sg.Text('请选择要读取的 Excel 文件:')], [sg.Input(key='-FILE PATH-'), sg.FileBrowse()], [sg.Button('读取数据', key='-READ DATA-')], [sg.Text('请在下面输入要写入的工作簿名称:')], [sg.Input(key='-SHEET NAME-')], [sg.Button('生成折线图', key='-GENERATE CHART-')], [sg.Output(size=(60, 10))], [sg.Button('退出程序', key='-EXIT-')] ] # 创建 GUI 窗口 window = sg.Window('可视化程序', layout) while True: # 读取窗口中的事件和输入 event, values = window.read() # 处理事件 if event == sg.WIN_CLOSED or event == '-EXIT-': # 如果用户关闭了窗口或点击了“退出程序”按钮,则退出循环,关闭窗口 break elif event == '-READ DATA-': # 如果用户点击了“读取数据”按钮,则读取 Excel 文件中的数据 try: file_path = values['-FILE PATH-'] df = pd.read_excel(file_path) print('成功读取 Excel 文件!') except Exception as e: print(f'读取 Excel 文件时出错:{e}') elif event == '-GENERATE CHART-': # 如果用户点击了“生成折线图”按钮,则将数据写入新的工作簿,并生成折线图 try: sheet_name = values['-SHEET NAME-'] # 创建一个新的工作簿 wb = Workbook() sheet = wb.active # 将数据写入新的工作簿 x = df.iloc[:, 0] y1 = df.iloc[:, 1] y2 = df.iloc[:, 2] for i in range(len(x)): sheet.cell(row=i+1, column=1, value=x[i]) sheet.cell(row=i+1, column=2, value=y1[i]) sheet.cell(row=i+1, column=3, value=y2[i]) # 创建一个折线图 chart = LineChart() data = Reference(sheet, min_col=2, max_col=3, min_row=1, max_row=len(x)) chart.add_data(data, titles_from_data=True) chart.title = 'My Chart' chart.x_axis.title = 'X' chart.y_axis.title = 'Y' # 将折线图添加到新的工作簿中 chart_sheet = wb.create_sheet(sheet_name) chart_sheet.add_chart(chart, 'A1') # 保存工作簿 wb.save(file_path) print(f'成功生成工作簿“{sheet_name}”和折线图!') except Exception as e: print(f'生成工作簿和折线图时出错:{e}') # 关闭 GUI 窗口 window.close() ``` 这个程序使用 PySimpleGUI 创建了一个简单的窗口,其中包括一个文件浏览器、两个文本框和三个按钮。用户可以使用文件浏览器选择要读取的 Excel 文件,然后在文本框中输入要写入的工作簿名称,最后点击“读取数据”按钮读取 Excel 文件中的数据,点击“生成折线图”按钮将数据写入新的工作簿并生成折线图。程序的输出结果将显示在窗口的底部。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值