python-3.x - 彩条上的刻度重叠,因为值非常接近
问题描述
我试图在彩条的一个轴上显示精确值,在另一个轴上显示基本比例。但是,一些确切的值非常接近,它们的名称在颜色条上重叠。有没有办法让重叠的名称显示为列表或仅显示在其他值名称的旁边?我已经尝试过旋转标签,在颜色条方法中设置 vmin/vmax,并设置第二轴的 ylim。我不知道下一步该尝试什么。感觉这是 matplotlib 允许的,但我找不到允许这种操作的方法或 kwargs。许多被注释掉的 tlines 是我在 StackOverflow 上的许多帖子的帮助下所做的尝试。谢谢!!
为了清楚起见,删除了以前的代码
更新:这里的 Paul H 是一个可行的例子,我正在尝试解决同样的问题
# Make random data with same issue
x, y = np.linspace(-3, 1.5, 20), np.linspace(0, 0.5, 20)
# two different ranges used to simulate the same issue in my data
fake_phase = np.append(np.random.random_sample(15), np.arange(0.0, .005, 0.001))
fake_labels = np.array(['V439Oph', 'ALVir', 'YZVir', 'XXVir', 'V716Oph', 'BFSer', 'BLHer',
'RXLib', 'CEHer', 'V465Oph', 'V1180Sgr', 'CSCas', 'DQAnd', 'IXCas',
'UYEri', 'TWCap', 'AUPeg', 'MZCyg', 'SWTau', 'TXDel'], dtype=object)
# Plot data
fig, ax = plt.subplots(1,1,figsize=(15,10))
plt.tight_layout()
plt.plot(x, y, marker='.', ms=17, mew=2, linestyle='none')
# Make the same colorbar
norm = cm.colors.Normalize(vmin=0.0, vmax=1.0, clip=False)
cbar = fig.colorbar(cm.ScalarMappable(norm=norm, cmap='rainbow'), ax=ax, extend='both',
orientation='vertical', pad=0.005, use_gridspec=True)
cbar.set_ticks(fake_phase)
cbar.set_ticklabels(fake_labels)
cbar.ax.tick_params(which='major', labelsize='large', width=1.5, length=6)
cbar.set_label(label='Phase', size='xx-large', labelpad=40)
cbar.ax.set_aspect('auto')
ax2 = cbar.ax.twinx()
pos = cbar.ax.get_position()
pos.x0 += 0.1
ax2.set_position(pos)
plt.show();
此代码的输出:可行示例的输出
我的问题是颜色条上的辅助轴(左轴)的值非常接近,它们的标签重叠。我希望找到一种方法来分隔标签,以便它们可读。我想我找到了一种方法来使用axis.set_ticklabels()(set_ticklabels()文档来完成此操作。在文档的** kargs部分中,它使用文本属性引用。在文本属性文档文本属性文档中,属性'y'说您可以设置文本的 y 位置。但是,当我将此关键字添加到 set_ticklabels() 时,我收到一个错误,即无法识别该关键字。我尝试将属性“y”添加为关键字和属性,但是我收到关键字错误或没有该属性错误...
我称该属性错误,但我在编辑这些参数时从未得到过详细信息。老实说,我不知道这是否是解决此问题的最佳方法,但这是迄今为止我得到的最接近的方法。我希望用它来偏移标签,以便它们以相同的顺序垂直堆叠在一起,但距离足够远,标签可读。
感谢您的任何意见!
解决方案
推荐阅读
- django - 使用 React Native 和 django-modeltranslation 更改语言
- kubernetes - 带有 Kubernetes 内存控制的 Java jib-maven-plugin
- database - 考虑实体-关系图中冗余关系的标准?
- django - Django 自定义注册表单html
- node.js - 在 Express 中设计集群和非集群服务
- javascript - 问:用javascript计算两个输入
- javascript - z 轴保持垂直的 3D 旋转
- javascript - 资源解释为样式表,但使用 MIME 类型 text/html 传输:
- flutter - 如何在颤动中将下载的项目添加到列表视图小部件?
- kubernetes - 如何将 Vault 中的 Secret 传递给 imagePullSecrets 以访问 Kubernetes 中私有注册表中的图像