首页 > 编程问答 >x 轴、y 轴和标题与图形区域重叠

x 轴、y 轴和标题与图形区域重叠

时间:2024-07-24 16:28:34浏览次数:3  
标签:python openpyxl

from openpyxl import *
from openpyxl.chart import *

wb = load_workbook("videogamesales.xlsx")
ws = wb["Breakdown of Sales by Year"]


chart = LineChart()

chart.title = "Total Sales"
chart.x_axis.title = "Year"
chart.y_axis.title = "Breakdown of Sales by Year"

value = Reference(ws, min_col=2, max_col=5, min_row=1, max_row=40)
cats = Reference(ws, min_col=1, min_row=2, max_row=40)

chart.x_axis.delete = False
chart.y_axis.delete = False

chart.add_data(data=value, titles_from_data=True)
chart.set_categories(cats)

chart.style = 10
chart.width = 20
chart.height = 10
chart.legend.overlay = False

ws.add_chart(chart, "H2")

wb.save("videogamesales.xlsx")

该教程告诉我,我可以在不更改特殊属性的情况下制作清晰的图表。 但这没有用。 我使用 'chart.legend.overlay = False' 解决了图例与图形区域重叠的问题
但是我找不到 x_axis、y_axis 和 title 的方法。 请帮助我。

图形图像

我想要一个清晰的图形 我想要的图形图像


可以使用 layout 参数微调图表以避免 OpenPyxl 图表中的重叠。以下是如何操作:

from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference
from openpyxl.chart.layout import Layout, ManualLayout

wb = load_workbook("videogamesales.xlsx")
ws = wb["Breakdown of Sales by Year"]

chart = LineChart()

chart.title = "Total Sales"
chart.x_axis.title = "Year"
chart.y_axis.title = "Breakdown of Sales by Year"

# 数据和类别
value = Reference(ws, min_col=2, max_col=5, min_row=1, max_row=40)
cats = Reference(ws, min_col=1, min_row=2, max_row=40)
chart.add_data(data=value, titles_from_data=True)
chart.set_categories(cats)

# --- 微调布局以避免重叠 ---
chart.layout = Layout(
    manualLayout=ManualLayout(
        x=0.1,  # 从单元格左上角开始的 x 位置
        y=0.1,  # 从单元格左上角开始的 y 位置
        h=0.8,  # 图表高度(单元格高度的百分比)
        w=0.8,  # 图表宽度(单元格宽度的百分比)
    )
)

# 图例位置
chart.legend.overlay = False

# 其他样式设置
chart.style = 10
chart.width = 20
chart.height = 10

ws.add_chart(chart, "H2")

wb.save("videogamesales.xlsx")

在此代码中:

  1. 我们导入必要的类,包括 Layout ManualLayout

  2. 我们使用 ManualLayout 创建一个 Layout 对象,以精确控制图表在单元格内的位置和大小。

  3. x y 控制图表相对于单元格左上角的偏移。

  4. h w 设置图表的高度和宽度,作为单元格高度和宽度的百分比。调整这些值以获得最佳间距。

通过调整这些布局参数,可以创建标题、轴和图例不再重叠的清晰、专业的图表。

标签:python,openpyxl
From: 78787006

相关文章

  • Python 的分布式锁管理器
    我有一堆具有多个实例的服务器,这些实例访问的资源对每秒的请求有硬性限制。我需要一种机制来锁定所有正在运行的服务器和实例对此资源的访问。有我在github上找到的一个restful分布式锁管理器:https://github.com/thefab/restful-distributed-lock-manager不幸......
  • 如何在Python中提示self变量的类型
    通常不需要关心Python类成员函数中的self变量,但我正在实现一个装饰器,看起来像defextractor(depends:List[Text]=None,provides:List[Text]=None)->Callable[[ExtractorFunction],Extracto......
  • 将 Python 类型提示限制为元组中的值
    我的方法之一采用status中使用的filter()参数。此参数与定义如下的模型字段相关:STATUS_CHOICES=((1,_("draft")),(2,_("private")),(3,_("published")),)classMyModel(Model):status=models.PositiveSmallIntegerFi......
  • 在python中查找区间数据的中位数
    我正在探索不同的python库,我想知道如何找到分组数据集的近似中值。这里有一个表格供参考。年龄频率1-1012310-203502......
  • 比较Python中的字符串统一特殊字符
    也许我可以使用更好的英语,但我想要的是忽略单词中的重音(和类似的),所以:renè、rené、rene'和rene应该是相同的,所以应该mañana和manana或even-distribuited和evendistribuited,可能还有sho......
  • 如何使用 Python 脚本从客户账单电子邮件中获取订单 ID - WooCommerce API
    我想创建一个python脚本,返回只知道客户的账单电子邮件的订单。我尝试这样做,但返回所有最近的订单:fromwoocommerceimportAPIwcapi=API(url="https://siteexample.com",consumer_key="ck_xxx",consumer_secret="cs_xxx",version="wc/v3")......
  • python基础理论小总结
    1.python语言的特性Python是一门解释型语言,简单清晰,开源免费,跨平台,有大量第三方库辅助开发,支持面向对象与自动垃圾回收,方便与其他编程语言相互调用。Python在数据采集、人工智能、WEB后台开发、自动化运维、测试等方向应用广泛。2.解释型语言和编译型语言的区别执行方式不......
  • python编码规范
    本篇讲的是代码格式化的问题,解决格式化的方法在最下方,不想看内容的,滑到最下方就好了。一、变量的命名规则1.组成:字母、数字、下划线2.不可以以数字开头3.不建议使用下划线开头4.命名需见名知意5.不要与关键字重名。如何查找所有关键字?importkeywordprint(keyword.k......
  • Python爬虫开发中的常用库与框架安装指南
    在Python爬虫开发中,选择合适的库和框架可以大大提高开发效率和爬虫的性能。本文将介绍一些常用的解析库、请求库、储存库、Web库、App爬取库以及爬虫框架,并展示如何使用pip命令进行安装。一、解析库1.BeautifulSoupBeautifulSoup是一个用于从HTML或XML文件中提取数据的Pyth......
  • 如何在Python中的指定项目之后添加新项目到嵌套列表?
    给定的列表是这样的。list1=[10,20,[300,400,[5000,6000],500],30,40]预期输出是这样的。我知道这是一个非常基本的问题,但我很困惑。输出:[10,20,[300,400,[5000,6000,7000],500],30,40]我希望有人能帮助我解决这个问题。并解释了嵌套列表的插入功......