matplotlib子批次中的对数y轴刻度颜色不';行不通

matplotlib子批次中的对数y轴刻度颜色不';行不通,matplotlib,subplot,logarithm,yaxis,Matplotlib,Subplot,Logarithm,Yaxis,我在matplotlib中使用子图绘制函数(由于其他原因,我不得不使用子图),并且喜欢将y刻度设置为对数,同时将y刻度设置为红色 我使用了以下代码: import matplotlib.pyplot as plt x_data = np.arange(500.0, 900.0, 1.0) def func(x): return a*(x/500.0)**(-b) fig, ax = plt.subplots() ax.plot(x_data, 10*func(x_data)) ax.

我在matplotlib中使用子图绘制函数(由于其他原因,我不得不使用子图),并且喜欢将y刻度设置为对数,同时将y刻度设置为红色

我使用了以下代码:

import matplotlib.pyplot as plt

x_data = np.arange(500.0, 900.0, 1.0)
def func(x):
    return a*(x/500.0)**(-b)

fig, ax = plt.subplots()
ax.plot(x_data, 10*func(x_data))
ax.set_yscale('log')
ax.tick_params('y', colors='r')
plt.show()

颜色是黑色的,尽管我特别将其设置为红色。 但是,当我选择线性比例时,颜色为红色:

import matplotlib.pyplot as plt

x_data = np.arange(500.0, 900.0, 1.0)
def func(x):
    return a*(x/500.0)**(-b)

fig, ax = plt.subplots()
ax.plot(x_data, 10*func(x_data))
ax.set_yscale('linear')
ax.tick_params('y', colors='r')
plt.show()

此外,当手动选择y轴范围时,第一个记号为红色:

import matplotlib.pyplot as plt

x_data = np.arange(500.0, 900.0, 1.0)
def func(x):
    return a*(x/500.0)**(-b)

fig, ax = plt.subplots()
ax.plot(x_data, 10*func(x_data))
ax.set_yscale('linear')
ax.tick_params('y', colors='r')
plt.show()


它和对数标度有关,但我不知道怎么解。有人能帮我吗?

您在第一个图表中看到的刻度是次要刻度,默认情况下适用于主要刻度

您可以使用
which=
参数指定哪个勾号
ax。勾号参数
适用于:

ax.tick_params('y', which="both", colors='r')

@Owerkeijer仅供参考:投票和/或接受解决问题或有帮助的答案是一种良好的做法。