5

私はずっと前に、matplotlib ですべてのテキスト サイズを同じに変更する関数を見ました。今、私はどこにもそれを見つけることができません。次のような単純な 1 つ (または 2 つ) のライナーでした。

for item in pylab.gca(): item.getLabel().setSize(10)

上記はどうすればいいですか?上記は単なる疑似コードですが、アイデアは x と y のラベル、凡例、タイトル、すべてを変更することです。

編集: ... 1 つの図形 (オブジェクト) 内。テキストのサイズを図の幅に依存させたい。グローバル font.size は、すべての図に対してこれを変更しますか? 動的に適用できないと思います(設定は図が作成される前にのみ読み取られます)?

EDIT 2font.size = 22 :メソッドをテストしました。たとえば、legend() の後に実行すると、奇妙な動作が発生します。テキストの垂直スペースは更新されません。したがって、getText().setTextSize() のようなものにする必要があります。

4

1 に答える 1

-3

フォントサイズを変更する代わりに、figsizeを変更できます(フォントサイズは同じままです)。

# figsize = (8,6)
figsize = (4,3) # same ratio, bigger text
fig,(ax) = plt.subplots(1, 1, figsize=figsize)

編集(完全を期すため):(画面上の)ピクセルのサイズは、設定可能なdpi設定、つまりFigure.set_dpi(val)によって制御されます。

編集2:正確なピクセルの高さをどのように(そしてもし)制御できるかわかりません。しかし、私はいくつかのテストを行いました:

#! /usr/bin/env python

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

x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)

matplotlib.rcParams.update({'font.size': 10})
fig,(ax) = plt.subplots(1, 1, figsize=(10,10))
plt.plot(x,y)
plt.savefig('test.png', dpi=300)

# font-size, figsize, dpi => pixel-height
# 10, 20x20, 100 => 10
# 10, 20x20, 200 => 21
# 10, 10x10, 100 => 10
# 10, 10x10, 200 => 21
# 10, 10x10, 300 => 34

また、アンチエイリアシングが原因でピクセルの高さに影響がある可能性があることにも注意してください。

于 2012-06-05T12:26:03.323 に答える