如何使用python ternary包旋转三元图的坐标轴刻度标签?
python-ternary三元图刻度标签旋转解决方案
你之前尝试的方案无效,是因为ternary的ticks方法未内置旋转参数的传递逻辑,也不直接返回可设置旋转的轴对象,必须获取其生成的文本标签对象后单独配置旋转属性。
完整可运行代码
from matplotlib import pyplot as plt import ternary figure, ax = plt.subplots(figsize=(6, 6)) tax = ternary.TernaryAxesSubplot(ax=ax, scale=100) # 绘制边界与网格线 tax.boundary(linewidth=2.0) tax.gridlines(color="black", multiple=10) # 生成刻度并获取返回的刻度对象,返回格式为(左轴数据, 底轴数据, 右轴数据),每个轴数据为(位置列表, 文本对象列表) tick_objects = tax.ticks( axis='lbr', linewidth=1, multiple=20, offset=0.02, fontsize=12 ) # 分别设置三个轴的刻度标签旋转角度,可根据实际显示需求调整角度值 # 左轴标签 for text in tick_objects[0][1]: text.set_rotation(0) # 底轴标签 for text in tick_objects[1][1]: text.set_rotation(-60) # 右轴标签 for text in tick_objects[2][1]: text.set_rotation(60) # 移除原生mpl坐标轴 tax.get_axes().axis('off') tax.clear_matplotlib_ticks() plt.show()
调整说明
如果标签和坐标轴距离不合适,可配合修改text.set_ha()(水平对齐)、text.set_va()(垂直对齐)参数,或者调整ticks方法的offset参数优化显示效果。
内容的提问来源于stack exchange,提问作者AlexWach
相关产品推荐
相关产品推荐

