首页 前端知识 pyecharts图例过多时导致图例和图表重叠如何解决(已解决)

pyecharts图例过多时导致图例和图表重叠如何解决(已解决)

2024-03-26 08:03:05 前端知识 前端哥 375 916 我要收藏

        当我们用pyecharts做图时,可能会遇到图例过多的情况,如下图,这个时候图例和图表就重叠了,很难看。有什么方法可以解决呢?

例如原效果:

from pyecharts import Line
import random

x = ["{}".format(i) for i in range(10)]

line = Line("这是主标题", "这是一段副标题的描述")
line.add("假设这个名词很长A", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长B", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长C", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长D", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长E", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长F", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长G", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长H", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长I", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长J", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长K", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长L", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长M", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长N", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长O", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长P", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长Q", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长R", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长S", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长T", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长U", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长V", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长W", x, [random.randint(10, 100) for i in range(10)])
line.render()

        解决:使用pyecharts自带的Gird模块

from pyecharts import Line, Grid
import random

x = ["{}".format(i) for i in range(10)]

line = Line("这是主标题", "这是一段副标题的描述")
line.add("假设这个名词很长A", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长B", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长C", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长D", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长E", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长F", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长G", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长H", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长I", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长J", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长K", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长L", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长M", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长N", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长O", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长P", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长Q", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长R", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长S", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长T", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长U", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长V", x, [random.randint(10, 100) for i in range(10)])
line.add("假设这个名词很长W", x, [random.randint(10, 100) for i in range(10)])

g = Grid()
g.add(line, grid_opts=opts.GridOpts(pos_top="23%"))
g.render()

 引用于github的chenjiandongxd大佬解答:

图例过多重叠,图例文字可缩小,但间距无法调整 · Issue #828 · pyecharts/pyecharts · GitHub

转载请注明出处或者链接地址:https://www.qianduange.cn//article/4168.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!