如何更改matplotlib图的边框宽度

ovfsdjhp  于 2023-08-06  发布在  其他
关注(0)|答案(4)|浏览(141)

如何更改subplot的边框宽度?
代码如下:

fig = plt.figure(figsize = (4.1, 2.2))
ax = fig.add_subplot(111)

ax.patch.set_linewidth(0.1) 
ax.get_frame().set_linewidth(0.1)

字符串
最后两行不起作用,但下面的行可以正常工作:

legend.get_frame().set_ linewidth(0.1)

mv1qrgav

mv1qrgav1#

也许这就是你要找的?
第一个月
mpl.rcParams['axes.linewidth'] = 0.1 #set the value globally

xlpyo6sf

xlpyo6sf2#

是否要调整边框线大小?您需要使用ax.spines[side].set_linewidth(size)。
所以类似于:

[i.set_linewidth(0.1) for i in ax.spines.itervalues()]

字符串

l2osamch

l2osamch3#

这对我很有用[x.set_linewidth(1.5) for x in ax.spines.values()]

wnrlj8wa

wnrlj8wa4#

如果Artist的一个或多个属性需要设置为特定值,matplotlib有一个方便的方法plt.setp(可以用来代替列表解析)。

plt.setp(ax.spines.values(), lw=0.2)
# or
plt.setp(ax.spines.values(), linewidth=0.2)

字符串
另一种方法是简单地使用循环。每个spine都定义了一个set()方法,可以用来设置一系列属性,如线宽、alpha等。

for side in ['top', 'bottom', 'left', 'right']:
    ax.spines[side].set(lw=0.2)


工作示例:

import matplotlib.pyplot as plt

x, y = [0, 1, 2], [0, 2, 1]

fig, ax = plt.subplots(figsize=(4, 2))
ax.plot(y)
ax.set(xticks=x, yticks=x, ylim=(0,2), xlim=(0,2));

plt.setp(ax.spines.values(), lw=5, color='red', alpha=0.2);


的数据

相关问题