You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Openpyxl配置Excel折线图(Line Chart)样式的技术求助

Python Excel图表样式配置问题解决方法

假设你使用的是xlsxwriter库(若用openpyxl,思路类似但API不同),以下是针对你7个样式需求的完整解决方案:

import pandas as pd
from xlsxwriter import Workbook

# 示例DataFrame
data = {
    '日期': ['2024-01', '2024-02', '2024-03', '2024-04'],
    '销量': [120, 150, 180, 210],
    '利润': [20, 30, 45, 55]
}
df = pd.DataFrame(data)

# 创建Excel工作簿和工作表
with Workbook('带样式图表的Excel.xlsx') as workbook:
    worksheet = workbook.add_worksheet('数据与图表')
    
    # 将DataFrame写入工作表
    df.to_excel(workbook, sheet_name='数据与图表', startrow=0, startcol=0, index=False)
    
    # 创建折线图对象
    chart = workbook.add_chart({'type': 'line'})
    
    # 配置图表数据系列,同时设置数据标签位置和颜色
    chart.add_series({
        'name': '=数据与图表!$B$1',
        'categories': '=数据与图表!$A$2:$A$5',
        'values': '=数据与图表!$B$2:$B$5',
        'data_labels': {'position': 'above', 'font': {'color': '#FF0000'}}
    })
    chart.add_series({
        'name': '=数据与图表!$C$1',
        'categories': '=数据与图表!$A$2:$A$5',
        'values': '=数据与图表!$C$2:$C$5',
        'data_labels': {'position': 'above', 'font': {'color': '#0000FF'}}
    })
    
    # 1. 应用Style 12
    chart.set_style(12)
    
    # 3. 移除主要网格线
    chart.set_x_axis({'major_gridlines': {'visible': False}})
    chart.set_y_axis({'major_gridlines': {'visible': False}})
    
    # 4. 取消标题粗体
    chart.set_title({
        'name': '销量与利润趋势',
        'font': {'bold': False}
    })
    
    # 5. 调整图表尺寸(单位:像素)
    chart.set_size({'width': 800, 'height': 500})
    
    # 7. 移除绘图区背景
    chart.set_plotarea({'fill': {'color': 'none'}})
    
    # 将图表插入工作表
    worksheet.insert_chart('E2', chart)

各需求对应代码说明:

  • 1. 应用Style 12:通过chart.set_style(12)调用内置样式,xlsxwriter支持1-48号内置图表样式。
  • 2. 设置Data Labels位于“Above”:在add_series的data_labels参数中指定'position': 'above'。
  • 3. 移除Major Gridlines:通过set_x_axis和set_y_axis分别关闭x、y轴主网格线的可见性。
  • 4. 取消标题粗体:在set_title的font参数里设置'bold': False。
  • 5. 调整图表尺寸:用set_size指定宽度和高度(像素单位)。
  • 6. 修改Data Labels颜色:在data_labels的font参数中设置十六进制颜色码。
  • 7. 移除绘图区背景:通过set_plotarea将填充颜色设为'none'。

若你使用openpyxl,对应调整思路:

  • 应用样式:chart.style = 12
  • 数据标签位置:series.data_labels.position = 'above'
  • 移除网格线:chart.x_axis.majorGridlines = None、chart.y_axis.majorGridlines = None
  • 取消标题粗体:chart.title.font.bold = False
  • 调整尺寸:直接赋值chart.width和chart.height(单位依版本为cm或像素)
  • 数据标签颜色:series.data_labels.font.color = colors.Color(rgb="FF0000")
  • 移除绘图区背景:chart.plot_area.fill = PatternFill(fill_type=None)

内容的提问来源于stack exchange,提问作者Berny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 05:43:17