Matplotlib 不同颜色的刻度线和标签

问题描述 投票:0回答:3

我正在尝试使用 matplotlib 中的特定颜色图绘制二维图像,我需要将刻度线的颜色更改为白色。但当我这样做时,标签或刻度数字也会改变颜色,并且它们在白色背景上变得不可见。

如何仅更改刻度线的颜色而不更改其标签或关联数字的颜色???

示例

    import matplotlib.pyplot as plt
    import numpy as np


    fig=plt.figure()
    ax=fig.add_subplot(111) 
    pc=ax.pcolormesh(xf,yf,F, vmin=F.min(), vmax=F.max(),  cmap=colormap)
    fig.colorbar(pc,orientation='horizontal',label=r'Intensity',format='%1.1f', ticks=np.arange(-0.1,0.6,0.1), pad=0.1)
    ax.set_xlabel("RA offset [arcsec]")
    ax.set_ylabel("DEC offset [arcsec]")
    ax.set_xlim(3.0,-3.0)
    ax.set_ylim(-3.0,3.0)

    ########## ticks

    ### x axis

    major_ticks = np.arange(-2.0, 3.0, 2.0)                                              
    minor_ticks = np.arange(-3.0, 4.0, 1.0)                                               


    ax.set_xticks(major_ticks)                                                       
    ax.set_xticks(minor_ticks, minor=True)                                           
    ax.set_yticks(major_ticks)                                                       
    ax.set_yticks(minor_ticks, minor=True) 
python matplotlib colors label
3个回答
3
投票

虽然回答了问题,但我觉得用起来更简单

ax.tick_params(axis='y', which='both', color='w')

更改 y 轴刻度的颜色而不更改标签颜色(参数

which
选择
major
minor
both
)。

要更改刻度线和标签的颜色,命令是

ax.tick_params(axis='y', which='both', colors='w')

更简单,我的意思是它使用更少的行来达到相同的结果。


2
投票

创建

Axes
并设置适当的刻度位置后,您可以使用
ax.get_xticklines()
ax.get_yticklines()
访问刻度。如果您迭代所有
xticks
yticks
,您可以使用
set_color()

更改它们的颜色

对于较小的蜱虫,您可以使用

ax.xaxis.get_minorticklines()
。请注意,如果您愿意,也可以使用
ax.xaxis.get_majorticklines()
代替
ax.get_xticklines()

for tick in ax.get_xticklines():
    tick.set_color('red')

for minortick in ax.xaxis.get_minorticklines():
    minortick.set_color('r')

for tick in ax.get_yticklines():
    tick.set_color('green')

0
投票

要更改刻度线的颜色,可能需要更改 Line2D 元素的标记颜色,如下所示:

for tick in ax.get_xticklines():
tick.set_markeredgecolor("r")
© www.soinside.com 2019 - 2024. All rights reserved.