python-matplotlib极坐标刻度轴标签位置

python-matplotlib极坐标刻度轴标签位置,第1张

概述我一直在寻找一种方法来可靠地将刻度和轴标签定位在极坐标图中.请看下面的例子:import numpy as np import matplotlib.pyplot as plt fig = plt.figure(figsize=[10, 5]) ax0 = fig.add_axes([0.05, 0.05, 0.4, 0.9], projection='p

我一直在寻找一种方法来可靠地将刻度和轴标签定位在极坐标图中.请看下面的例子:

import numpy as npimport matplotlib.pyplot as pltfig = plt.figure(figsize=[10,5])ax0 = fig.add_axes([0.05,0.05,0.4,0.9],projection="polar")ax1 = fig.add_axes([0.55,projection="polar")r0 = np.linspace(10,12,10)theta0 = np.linspace(0,0.1,10)ax0.quiver(theta0,r0,-0.1,0.1)ax1.quiver(theta0 + np.pi,0.1)ax0.set_thetamin(-2)ax0.set_thetamax(10)ax1.set_thetamin(178)ax1.set_thetamax(190)for ax in [ax0,ax1]:    # Labels    ax.set_xlabel("r")    ax.set_ylabel(r"$\theta$",labelpad=10)    # R range    ax.set_rorigin(0)    ax.set_rmin(9)    ax.set_rmax(13)plt.show()

结果如下图:


您可以清楚地看到

(a)在曲线之间,tick轴上的刻度标签位置从下到上切换,而theta的刻度标签从右到左切换.

(b)轴标签位置固定.我希望轴标签也与刻度标签一起移动.即,在左侧图中,“ theta”应位于右侧,而在右侧图中,“ r”应位于顶部.

如何以某种方式控制轴/刻度线标签,以便正确放置它们?例如,这甚至变得更糟.偏移90度,因为theta轴实际上是垂直的,并且刻度线标签完全消失了.

最佳答案我认为最重要的一点是要弄清楚通常左右的概念如何在matplotlib中转换为极轴.

角轴是“ x”轴.径向轴是“ y”轴. “底部”是外圈. “顶部”是内圈. “左”是径向轴在角轴的起点,“右”是其轴的终点.

然后,这允许照常设置刻度位置,例如

ax.tick_params(labelleft=True,labelright=False,labeltop=False,labelbottom=True)

对于上述情况.

x和y标签(set_xlabel / set_ylabel)不翻译.与法线轴一样,此处的左,右,上,下指的是笛卡尔定义.这意味着对于某些位置,它们太远了,因此不能用于标记轴.一种替代方法是在所需位置创建文本.

完整的示例代码:

import numpy as npimport matplotlib.pyplot as pltfig,(ax0,ax1) = plt.subplots(ncols=2,figsize=(10,5),subplot_kw=dict(projection="polar"))ax0.set(thetamin=180,thetamax=230)ax1.set(thetamin=  0,thetamax= 50)plt.setp([ax0,ax1],rorigin=0,rmin=5,rmax=10)ax0.tick_params(labelleft=False,labelright=True,labeltop=True,labelbottom=False)trans,_,_ = ax1.get_xaxis_text1_transform(-10)ax1.text(np.deg2rad(22.5),-0.18,"Theta Label",transform=trans,rotation=22.5-90,ha="center",va="center")plt.show()

总结

以上是内存溢出为你收集整理的python-matplotlib极坐标刻度/轴标签位置 全部内容,希望文章能够帮你解决python-matplotlib极坐标刻度/轴标签位置 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1199670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存