matplotlib厚度

matplotlib厚度,matplotlib,Matplotlib,有没有一种方法可以增加matplotlib中记号的厚度和大小,而不必编写这样的长代码: for line in ax1.yaxis.get_ticklines(): line.set_markersize(25) line.set_markeredgewidth(3) 这段代码的问题在于它使用了一个循环,这通常会占用大量CPU。您可以使用rcParams更改所有matplotlib默认值,如中所示 import numpy as np import matplotlib as

有没有一种方法可以增加matplotlib中记号的厚度和大小,而不必编写这样的长代码:

for line in ax1.yaxis.get_ticklines():
    line.set_markersize(25)
    line.set_markeredgewidth(3)

这段代码的问题在于它使用了一个循环,这通常会占用大量CPU。

您可以使用
rcParams
更改所有
matplotlib
默认值,如中所示

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

# set tick width
mpl.rcParams['xtick.major.size'] = 20
mpl.rcParams['xtick.major.width'] = 4
mpl.rcParams['xtick.minor.size'] = 10
mpl.rcParams['xtick.minor.width'] = 2

x = np.linspace(0., 10.)
plt.plot(x, np.sin(x))

plt.show()
你可以用

您还可以使用列表理解,尽管除了减少代码中的行数之外,没有返回值可能没有多大意义


一种更简单的方法是使用
对象的
设置勾选参数
功能:

ax.xaxis.set_tick_params(width=5)
ax.yaxis.set_tick_params(width=5)
这样做意味着您可以在每个轴的基础上进行更改,而不必担心全局状态,也不必对mpl对象的内部结构进行任何假设

如果要为轴中的所有刻度设置此值

ax = plt.gca()
ax.tick_params(width=5,...)

看看doc和

如果你从不使用结果列表,为什么列表理解会更有效?你是对的。如果我理解正确,可能会更糟(效率和可读性)。我将编辑我的答案。ps,OT:这证明了stackoverflow是一个很好的工具,因为有时候你会学到更多回答问题的方法,这些问题与缺少的“s”密切相关?对我来说是ax.tick_params()@tylerswright谢谢你修复了一个很长时间(而且投票率很高?!)的打字错误。
ax.xaxis.set_tick_params(width=5)
ax.yaxis.set_tick_params(width=5)
ax = plt.gca()
ax.tick_params(width=5,...)