绘图生成的饼图文本超出页面边界

问题描述 投票:0回答:1

我正在使用plotly 生成饼图,文本信息设置在扇区之外。然而,当扇区数量增加到很大时,文本信息将不会显示在图框中

MWE如下

import plotly.express as px
from random import randint
import pandas as pd

allData = []

for i in range(100):
    ele = {}
    ele['Category'] = "Category_" + str(i)
    ele['number'] = i + 1
    allData.append(ele)

df = pd.DataFrame(allData)

fig = px.pie(names = df['Category'], values = df['number'], hole = 0.5)
fig.update_traces(textinfo = 'label+value', textposition = "outside")
fig.show()

它给了我这样的东西。一些文本信息在上下边界中丢失 Some Text Info Get Lost on upper and lower

当我缩小页面时,所有文字信息都会显示出来

Zoom out to show all contetents

但是这次字体变小了,难以辨认。

有没有办法生成带有滚动条的 100% 尺寸大图像?这样所有信息都将可见。

python plotly bar-chart image-size
1个回答
0
投票

您可以做三件事:

  • 使用

    textinfo = 'label+value'
    ,每个标签/值对占用两行,您可以通过指定
    texttemplate
    将它们显示在同一行上来节省一些空间。

  • 默认情况下,绘图的分辨率适合浏览器窗口,您可以通过指定布局宽度/高度来增加分辨率。

  • 字体大小也是根据可用空间设置的,但仍然可以调整它(还有字体系列,因为当尺寸较小时,有些字体比其他字体更具可读性,请参见这篇post)。

fig = px.pie(names=df['Category'], values=df['number'], hole=0.5)

fig.update_traces(texttemplate='%{label}: %{value}', textposition="outside")

fig.update_layout(
    width=2048,
    height=2048,
    font_family='Segoe UI',
    font_size=11
)

fig.show()
© www.soinside.com 2019 - 2024. All rights reserved.