当我们用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