41

したがって、次のことはできないようです (メソッドaxesがないため、エラーが発生します)。set_linewidth

axes_style = {'linewidth':5}
axes_rect = [0.1, 0.1, 0.9, 0.9]

axes(axes_rect, **axes_style)

代わりに、次の古いトリックを使用する必要があります。

rcParams['axes.linewidth'] = 5 # set the value globally

... # some code

rcdefaults() # restore [global] defaults

簡単でクリーンな方法はありますか (軸パラメーターを個別に設定できるxなどy)?

いいえの場合、なぜですか?

4

4 に答える 4

92
  • コメントで説明されているように、この回答は機能しません。を使用することをお勧めしspinesます。
  • Czechnologyのコメントで述べたように、ティックも変更することを検討してください。
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))

ax1.set_title('Normal spine and ticks')
ax2.set_title('Adjusted spine and ticks')

# change each spine separately:
# ax.spines['right'].set_linewidth(0.5)

# change all spines
for axis in ['top','bottom','left','right']:
    ax2.spines[axis].set_linewidth(4)

# increase tick width
ax2.tick_params(width=4)

plt.show()

ここに画像の説明を入力

于 2013-12-20T12:25:31.890 に答える
19
plt.setp(ax.spines.values(), linewidth=5)
于 2016-04-19T10:54:39.650 に答える
7

はい、これを行う簡単でクリーンな方法があります。

axis インスタンスから ' axhline ' および ' axvline ' を呼び出すことは、MPL ドキュメントで推奨されている手法のようです。

いずれにせよ、これはシンプルで、軸の外観をきめ細かく制御できます。

たとえば、このコードはプロットを作成し、x 軸を緑に色付けし、x 軸の線幅をデフォルト値の「1」から値「4」に増やします。y 軸は赤色で、y 軸の線幅は「1」から「8」に増加します。

from matplotlib import pyplot as PLT
fig = PLT.figure()
ax1 = fig.add_subplot(111)

ax1.axhline(linewidth=4, color="g")        # inc. width of x-axis and color it green
ax1.axvline(linewidth=4, color="r")        # inc. width of y-axis and color it red

PLT.show()

axhline/axvline 関数は追加の引数を受け入れます。これにより、審美的に必要なことはほとんど何でも行うことができます。特に、~matplotlib.lines.Line2D プロパティのいずれかが有効な kwargs (たとえば、'alpha'、'linestyle'、capstyle、ジョインスタイル)。

于 2010-03-31T23:49:01.103 に答える