自定义极轴等值线图轴样式

Posted

技术标签:

【中文标题】自定义极轴等值线图轴样式【英文标题】:Customise polar contour plot axes style 【发布时间】:2022-01-15 19:26:09 【问题描述】:

我正在使用 GridSpec 在 matplotlib 中创建一个极坐标等高线图网格。为了帮助视觉效果,我正在尝试自定义等高线图的外观。以这个单极图为例(MWE 下面)

我有两个格式问题:

    如何自定义 r 轴以仅显示 0、20、40 和 60 个值?我怎样才能让这些数字也显示为白色?

    在绘制多个极坐标图时,我选择使用ax.grid(False)ax.set_xticklabels([])ax.set_yticklabels([]) 删除另一个坐标轴和刻度。然而,沿 theta = 0 的白条仍然存在,我想将其删除。将此图像视为我的意思的示例:

MWE

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import gridspec

gs=gridspec.GridSpec(1,1)
gs.update(wspace=0.205, hspace=0.105) 
fig=plt.figure(figsize=(500/72.27,450/72.27))

X = np.arange(0, 70, 10)
Y = np.radians(np.linspace(0, 360, 20))
r, theta = np.meshgrid(X,Y)
Z1 = np.random.random((Y.size, X.size))


ax=fig.add_subplot(gs[0,0], projection='polar')
cax=ax.contourf(theta, r, Z1, 10)
plt.show()

【问题讨论】:

您好,您能否也显示第二个示例的数据? @MyWork,我注意到我plt.savefig 时没有显示白条,所以第二部分似乎不是错误。 【参考方案1】:

对于您的第一个问题,只需使用 matplotlib 中的 rticks(也可以查看 demo:

ax.set_rticks([0,20,40,60])
ax.tick_params(colors='white', axis="y", which='both') 

完整代码:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import gridspec

gs=gridspec.GridSpec(1,1)
gs.update(wspace=0.205, hspace=0.105) 
fig=plt.figure(figsize=(500/72.27,450/72.27))

X = np.arange(0, 70, 10)
Y = np.radians(np.linspace(0, 360, 20))
r, theta = np.meshgrid(X,Y)
Z1 = np.random.random((Y.size, X.size))


ax=fig.add_subplot(gs[0,0], projection='polar')
cax=ax.contourf(theta, r, Z1, 10)

ax.set_rticks([0,20,40,60])
ax.tick_params(colors='white', axis="y", which='both') 
plt.show()

更新: 要使刻度具有不同的颜色,请使用我在评论中提到的内容:

colors = ['r', 'white', 'white', 'r']
for ytick, color in zip(ax.get_yticklabels(), colors):
    ytick.set_color(color)

来源:matplotlib different colors for each axis label,Set color for xticklabels individually in matplotlib

【讨论】:

是否可以将某些 rtick 值设置为不同的颜色。 IE。注意 0 不是很明显,是否有可能只有红色,而其他颜色是白色? @Sid,这个***.com/questions/24617429/… 或这个***.com/questions/21936014/… 对你有帮助吗? 是的,这确实有助于感谢您发布链接! @Sid 我也更新了答案

以上是关于自定义极轴等值线图轴样式的主要内容,如果未能解决你的问题,请参考以下文章

[功能干货] 折线图效果呈现,自定义就是这么傲娇,快来试试吧

如何使用 JasperReports 6.7.0 在折线图上自定义轴?

python 使用日期自定义x轴样式。

python 使用日期自定义x轴样式。

Python使用matplotlib函数subplot可视化多个不同颜色的折线图使用set_major_formatter函数自定义设置y轴数值标签格式为百分比

python使用matplotlib可视化线图(line plot)自定义可视化图像X轴和Y轴轴标签的色彩(change color of axis in matplotlib)