有没有办法增加matplotlib中的刻度的大小和大小,而不必像这样写一长段代码:
for line in ax1.yaxis.get_ticklines():
line.set_markersize(25)
line.set_markeredgewidth(3)
Run Code Online (Sandbox Code Playgroud)
这段代码的问题在于它使用的循环通常需要大量的CPU使用.
tac*_*ell 43
更简单的方法是使用对象的set_tick_params功能axis:
ax.xaxis.set_tick_params(width=5)
ax.yaxis.set_tick_params(width=5)
Run Code Online (Sandbox Code Playgroud)
这样做意味着您可以在每个轴的基础上更改此问题,而不必担心全局状态,也不会对mpl对象的内部结构做出任何假设.
如果要为轴中的所有刻度设置此值,
ax = plt.gca()
ax.tick_params(width=5,...)
Run Code Online (Sandbox Code Playgroud)
查看set_tick_paramsdoc和 tick_params有效关键字
Dav*_*ker 15
您可以使用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()
Run Code Online (Sandbox Code Playgroud)
plt.setp(ax.yaxis.get_ticklines(), 'markersize', 25)
plt.setp(ax.yaxis.get_ticklines(), 'markeredgewidth', 3)
Run Code Online (Sandbox Code Playgroud)
你也可以使用列表理解,虽然没有返回值可能没有多大意义,除了减少代码中的行数,请参阅此处
[line.set_markersize(25) for line in ax1.yaxis.get_ticklines()]
[line.set_markeredgewidth(3) for line in ax1.yaxis.get_ticklines()]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33073 次 |
| 最近记录: |