python-3.x 如何设置用openpyxl模块绘制的图表标题的字体大小

qc6wkl3g  于 2023-02-17  发布在  Python
关注(0)|答案(3)|浏览(432)

我正在使用openpyxl模块来绘制可用分析数据的图表。我可以绘制图表,但无法找到更改图表标题字体大小的选项。默认情况下,它将"18"作为字体大小。在openpyxl中,有openpyxl.Styles模块具有"字体"选项。使用该模块,我们可以更改单元格中可用数据的字体。但是,而不是图表标题的字体大小。有没有人能帮上忙...
下面是我的代码:

from openpyxl import Workbook
from openpyxl.styles import Style, Font
from openpyxl.chart import (
    AreaChart,
    Reference,
    Series,
)
wb = Workbook()
ws = wb.active
rows = [
    ['Number', 'Batch 1', 'Batch 2'],
    [2, 40, 30],
    [3, 40, 25],
    [4, 50, 30],
    [5, 30, 10],
    [6, 25, 5],
    [7, 50, 10],
]
for row in rows:
    ws.append(row)

chart = AreaChart()
chart.title = "Area Chart"
chart.style = 20
chart.x_axis.title = 'Test'
chart.y_axis.title = 'Percentage'
chart.x_axis.Font = 10 -- /# Trying like this to change the font size. But throwing error #/
chart.y_axis.Font = 10

cats = Reference(ws, min_col=1, min_row=1, max_row=7)
data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=7)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)

ws.add_chart(chart, "A10")
wb.save("area.xlsx")

请在这方面帮助我

nkoocmlb

nkoocmlb1#

尝试使用整数sz(大小)值应用CharacterProperties的以下代码段:

from openpyxl.drawing.text import CharacterProperties
chart.x_axis.title.tx.rich.p[0].r.rPr = CharacterProperties(sz=3500)
vlf7wbxs

vlf7wbxs2#

这对我来说肯定有效。我在自己的项目中成功地使用了这个

from openpyxl.chart.text import RichText
from openpyxl.drawing.text import Paragraph, ParagraphProperties, CharacterProperties, Font

font = Font(typeface='Arial')
cp = CharacterProperties(latin=font, sz=800, b=False)
pp = ParagraphProperties(defRPr=cp)
rtp = RichText(p=[Paragraph(pPr=pp, endParaRPr=cp)])

chart.x_axis.txPr = rtp
chart.y_axis.txPr = rtp
chart.y_axis.title.tx.rich.p[0].pPr = pp

chart.y_axis.title.tx.rich.p返回包含各种属性的列表。第一个元素(=p[0])包含定义标题字体样式的pPr(=ParagraphProperties)。您可以通过这种方式为自己的自定义pPr(=pp)分配所需的样式

chart.y_axis.title.tx.rich.p[0].pPr = pp
r6vfmomb

r6vfmomb3#

这里是另一个解决方案,因为旧的答案(和这里的其他答案)在我的情况下不起作用:

from openpyxl.drawing.text import Paragraph, ParagraphProperties, CharacterProperties, RichTextProperties, Font, RegularTextRun

chart.title.text.rich.paragraphs[0].pPr = ParagraphProperties(defRPr=CharacterProperties(
    latin=Font(typeface='Tahoma'), sz=1000, b=True))

在负责模块的source code中有更多信息-“openpyxl.chart.title”,查找函数“title_maker(text)"。
来源:openpyxl docsexample from python-forum

相关问题