我正在使用子图绘制matplotlib中的函数(由于其他原因我必须使用子图),并且喜欢将y-scale设置为对数,同时将y-ticks设置为红色。
我使用了这段代码:
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()
它与对数刻度有关,但我不知道如何解决它。有人可以帮我这个吗?
答案 0 :(得分:1)
您在第一个图表中看到的刻度线是次要刻度线,默认情况下ax.tick_params
适用于主刻度线。
您可以使用ax.tick_params
参数指定which=
适用的刻度:
ax.tick_params('y', which="both", colors='r')