今天搞可视化的折线图,发现和之前的柱状图出现同样的问题,就是 x 轴数据如果过多或者 str 内容过长,就不能完全显示,看了文档好长时间,很是烦躁,博文最后总结了三种方法。
官方文档解决这个问题的地方(在设置全局设置中的 AxisOpts 中):
直接上代码解释吧:
最初的代码:
#折线图
(
#init_opts=opts.InitOpts(width="1500px"),设置可视化图的长度,1500像素
Line()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name='折线统计图',
y_axis=y_data,
)
.set_global_opts(
#
tooltip_opts=opts.TooltipOpts(is_show=False),
yaxis_opts=opts.AxisOpts(
#分割线配置,显示 y 轴每个刻度的分割线
splitline_opts=opts.SplitLineOpts(is_show=True),
)
)
.render("Line.html")
)
可以看到原本5个的数据只显示了3个,修改后的代码:
#折线图
(
#init_opts=opts.InitOpts(width="1500px"),设置可是画图的长度,1500像素
Line()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name='折线统计图',
y_axis=y_data,
)
.set_global_opts(
#
tooltip_opts=opts.TooltipOpts(is_show=False),
xaxis_opts=opts.AxisOpts(
axislabel_opts={"interval":"0"}
),
yaxis_opts=opts.AxisOpts(
#分割线配置,显示 y 轴每个刻度的分割线
splitline_opts=opts.SplitLineOpts(is_show=True),
)
)
.render("Line.html")
)
总结解决方法:
- 在初始化图的时候直接将图的宽度边长(适用于数据较少且名称较长的数据):
Line(init_opts=opts.InitOpts(width="1500px"))
2.设值全局设置,更改 interval 的值,默认会采用标签不重叠的方式显示标签(也就是默认会将部分文字显示不全)可以设置为0强制显示所有标签,如果设置为1,表示隔一个标签显示一个标签,如果为3,表示隔3个标签显示一个标签,以此类推
xaxis_opts=opts.AxisOpts(
axislabel_opts={"interval":"0"}
)
3.设置全局设置,将字体倾斜,更改 interval 的值,设置倾斜度数:
xaxis_opts=opts.AxisOpts(
axislabel_opts={"rotate":45}
)