CharlesE_233 2021-06-25 20:50 采纳率: 50%
浏览 142

用openpyxl生成柱状图时,遇到横坐标与自己的计划不一致的问题,该如何解决?

问题:

计划用openpyxl将buy_mount这一列数据设为柱状图的横坐标,但是现在的横坐标是错误的,我应该怎么改。

同时,饼状图显示的数据的标注不全(只能显示0-8),怎样改才能显示全。

求指点。

 

代码:

import os
import time
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference
from openpyxl.chart import PieChart, Reference


# BarChart
def drawBarchart(ws, lenrows):
    chart = BarChart()
    chart.type = "col"
    chart.style = 10
    chart.title = "柱状图"
    chart.y_axis.title = 'Data'
    chart.x_axis.title = 'Buy mount'
    data = Reference(ws, min_col=2, min_row=2, max_row=1+lenrows, max_col=2)
    cats = Reference(ws, min_col=1, min_row=2, max_row=1+lenrows)
    chart.set_categories(cats)
    chart.add_data(data, titles_from_data=True)
    ws.add_chart(chart, "D1")
    return 0


# PieChart
def drawPiechart(ws, lenrows):
    pie = PieChart()
    pie.style = 10
    pie.title = "饼状图"
    labels = Reference(ws, min_col=1, min_row=2, max_row=1+lenrows)
    data = Reference(ws, min_col=2, min_row=2, max_row=1+lenrows, max_col=2)
    pie.add_data(data, titles_from_data=True)
    pie.set_categories(labels)
    ws.add_chart(pie, "D20")
    return 0


if __name__ == "__main__":
    time_start = time.perf_counter()
    print("Path:", os.getcwd())
    tableName = "./charts.xlsx"
    wb = load_workbook(tableName)
    sheet = wb.active
    lensheet = sheet.max_row
    drawBarchart(sheet, lensheet)
    drawPiechart(sheet, lensheet)
    # 保存表格
    wb.save(tableName)
    time_end = time.perf_counter()
    print("Speed Times:{:.4f} s".format(time_end-time_start))
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-07 17:07
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算