2

matplotlib の figure.text() コマンドで (新しいスタイルの) python 文字列フォーマットを使用することは可能ですか?

2 列のデータをテキストとして作成しようとしています (これらはきちんと整列することを意図しています)。

import matplotlib.pyplot as plt

txt = '{0:50} {1:.4e}'.format('Row1:', 0.1542457) + '\n' + \
      '{0:50} {1:.4e}'.format('Row2:', 0.00145744) + '\n' + \
  '{0:50} {1:.4e}'.format('Long name for this row):', 0.00146655744) + '\n' + \
  '{0:50} {1}'.format('medium size name):', 'some text')

fig = plt.figure()
ax1 = fig.add_axes((0.1, 0.3, 0.8, 0.65))
ax1.plot(range(10),range(10))
fig.text(0.17, 0.07,txt)
plt.show()

txt 変数を画面に出力すると見栄えがします。

整列テキスト

しかし、私のプロットでは整列していません

位置ずれしたテキスト

4

2 に答える 2

6

書式設定を維持するには、モノスペース フォントを使用する必要があります。

import matplotlib.pyplot as plt

txt = '{0:50} {1:.4e}\n'.format('Row1:', 0.1542457) + \
      '{0:50} {1:.4e}\n'.format('Row2:', 0.00145744) + \
      '{0:50} {1:.4e}\n'.format('Long name for this row):', 0.00146655744) + \
      '{0:50} {1}'.format('medium size name):', 'some text')

fig = plt.figure()
ax1 = fig.add_axes((0.1, 0.3, 0.8, 0.65))
ax1.plot(range(10),range(10))
fig.text(0.17, 0.07, txt, family='monospace')
plt.show()

ここに画像の説明を入力

于 2013-10-09T01:17:18.310 に答える
3

2 つの文字列 txtL と txtR を作成し、マルチアライメント kwarg を使用しますが、txtRの y 位置をプログラムで把握するのは難しい場合があります。

import matplotlib.pyplot as plt

txt = '{0:50} {1:.4e}'.format('Row1:', 0.1542457) + '\n' + \
      '{0:50} {1:.4e}'.format('Row2:', 0.00145744) + '\n' + \
  '{0:50} {1:.4e}'.format('Long name for this row):', 0.00146655744) + '\n' + \
  '{0:50} {1}'.format('medium size name):', 'some text')

txtL = 'Row1:\nRow2:\nLong name for this row):\nmedium size name):'
txtR = '0.1542457\n0.00145744\n0.00146655744\nsome text'

fig = plt.figure()
ax1 = fig.add_axes((0.1, 0.3, 0.8, 0.65))
ax1.plot(range(10),range(10))
fig.text(0.17, 0.07,txtL, multialignment = 'left')
fig.text(0.7, 0.07,txtR, multialignment = 'right')

plt.show()
plt.close()

ここに画像の説明を入力

于 2013-10-09T01:26:46.470 に答える