Python-减小颜色栏主刻度大小

Python-减小颜色栏主刻度大小,python,matplotlib,plot,Python,Matplotlib,Plot,我刚开始用matplotlib实现rc参数化,以提高绘图数据的生产率 当使用轴刻度参数时,它会影响我的颜色条刻度大小,使其看起来呆滞 我没有包括我所做的计算,只是绘制数据的脚本的一部分 import matplotlib.pyplot as plt import numpy as np #================================= ##### Custom Plot Parameters ##### #=================================

我刚开始用matplotlib实现rc参数化,以提高绘图数据的生产率

当使用轴刻度参数时,它会影响我的颜色条刻度大小,使其看起来呆滞

我没有包括我所做的计算,只是绘制数据的脚本的一部分

import matplotlib.pyplot as plt
import numpy as np

#=================================
##### Custom Plot Parameters #####
#=================================
params = {
    'backend': 'wxAgg',
    'lines.markersize': 2,
    'lines.linewidth': 2.5,
    'axes.labelsize': 16,
    'axes.linewidth': 2.5,
    'xtick.major.size': 10,
    'xtick.minor.size': 3,
    'xtick.major.width': 2.5,
    'xtick.minor.width': 1.25,
    'ytick.major.size': 10,
    'ytick.minor.size': 3,
    'ytick.major.width': 2.5,
    'ytick.minor.width': 1.25,
    'xtick.labelsize': 15,
    'ytick.labelsize': 15,
    'text.fontsize': 10,
    'font.weight': 'heavy',
    'text.usetex': True, 
    'figure.figsize': [9,7],
    'legend.fontsize': 15,
    'legend.frameon': True,
}
plt.rcParams.update(params)


cmap = plt.get_cmap("Set1", 150)


##### ColorMap #####
cax = plt.scatter(RelDist, RadVel, c=Infall, cmap=cmap, vmin=0.1, vmax=max(Infall))
cbar = plt.colorbar(cax, ticks=[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0], format=None, shrink=0.7, pad=0.01)


plt.plot(R, nfwEsc08, ':', linewidth=2., color='black', label=r'$ 0.8 \times 10^{12}$')
plt.plot(R, nfwEsc12, '-.', linewidth=2., color='black', label=r'$ 1.2 \times 10^{12}$')
plt.plot(R, nfwEsc20, '--', linewidth=2., color='black', label=r'$ 2.0 \times 10^{12}$')

plt.plot(R, -nfwEsc08, ':', linewidth=2., color='black')
plt.plot(R, -nfwEsc12, '-.', linewidth=2., color='black')
plt.plot(R, -nfwEsc20, '--', linewidth=2., color='black')

plt.xlim(0,1400)
plt.ylim(-450,450)

plt.xlabel('$\mathrm{Galactocentric\ Distance}$ [$\mathrm{kpc}$]')
plt.ylabel('$\mathrm{Radial\ Velocity}$ [$\mathrm{km}\ \mathrm{s}^{-1}$]')
cbar.set_label('$\mathrm{Infall\ Time}$ [$\mathrm{Gyr}$]')




plt.legend()



plt.show()

我一直很难找到
matplotlib.rcParams
的文档,这些文档涉及任何带有颜色条的内容。我想他们的是什么

如何调整颜色栏的主刻度大小,而不影响我的打印轴的刻度大小

-----------编辑-------------------

#=================================
##### Custom Plot Parameters #####
#=================================
params = {
    'backend': 'wxAgg',
    'lines.markersize': 2,
    'lines.linewidth': 2.5,
    'axes.labelsize': 16,
    'axes.linewidth': 2.5,
    'xtick.major.size': 10,
    'xtick.minor.size': 3,
    'xtick.major.width': 2.15,
    'xtick.minor.width': 1.25,
    'ytick.major.size': 10,
    'ytick.minor.size': 3,
    'ytick.major.width': 2.15,
    'ytick.minor.width': 1.25,
    'xtick.labelsize': 15,
    'ytick.labelsize': 15,
    'text.fontsize': 10,
    'font.weight': 'heavy',
    'text.usetex': True, 
    'figure.figsize': [9,7],
    'legend.fontsize': 15,
    'legend.frameon': True,
}
plt.rcParams.update(params)


x = np.array(np.random.randint(0, 50, 500))
y = x**2
z = y/x

cmap = plt.get_cmap("Set1", 150)


##### ColorMap #####
cax = plt.scatter(x, y, c=z, cmap=cmap, vmin=0.1, vmax=max(z))
cbar = plt.colorbar(cax, format=None, shrink=0.7, pad=0.01)

plt.legend()

plt.show()

问题是,长轴的自定义也会影响颜色栏中的主刻度,导致is大量加厚


有什么办法不让颜色栏中的勾号发生这种情况,但让我仍然保留对绘图的更改?

使用rcParams,您可以编辑即将进行的绘图的默认值。您需要知道的是,Colormap
cbar
有自己的
ax
属性,您可以使用
cbar.ax
()访问该属性。有了这些知识,您可以在创建特定轴后更改该轴的刻度,同时保留默认值:

[...]
cbar = plt.colorbar(cax, format=None, shrink=0.7, pad=0.01)
cbar.ax.tick_params(labelsize=5, width=2)

可以使用此引用调整主刻度和次刻度的大小。 您可以更改长度和宽度=大小。例如:

cbar.ax.tick_params(labelsize=40,length=10, width=4, which="major")

这使得colobar的标签更大,主刻度也更长更宽。

现在,当我尝试运行此示例时,有一堆变量未定义。你能把它简化成MCVE吗@保罗:当然。我将为生成的随机变量数组添加一个小编辑部分。