1

Matplotlib と3 項ライブラリを使用した次の Python スクリプトがあります。頂点と軸にいくつかのラベルを付けた 3 値プロットを生成します。

import matplotlib.pyplot as plt
import ternary

# Cleaning up
plt.close('all')

# Open figure
scale = 100
fig, tax = ternary.figure(scale=scale)
tax.ticks(axis='lbr', multiple=10, linewidth=1, offset=0.025)
tax.get_axes().axis('off')
tax.clear_matplotlib_ticks()

# Draw Boundary and Gridlines
tax.boundary(linewidth=2.0)
tax.gridlines(color="grey", multiple=10)

# Vertex labels
tax.left_corner_label('A')
tax.right_corner_label('B')
tax.top_corner_label('C')

# Axis labels
tax.left_axis_label("$\longleftarrow$ A [%]",    va='center', ha='center', offset=0.15)
tax.bottom_axis_label("B [%] $\longrightarrow$", va='center', ha='center', offset=0.11)
tax.right_axis_label("$\longleftarrow$ C [%]",   va='center', ha='center', offset=0.15)

# Save figure
fig.savefig('ternary_plot_1.png')
fig.savefig('ternary_plot_2.png')

savefig コマンドを 2 回続けて直接呼び出すと、結果の画像は次のようになります。特に、最初のものは頂点と軸のラベルを表示しませんが、2番目のものは表示します。何故ですか?

.eps または .svg として保存する場合も同じように動作します。「通常の」プロットでこの動作を見たことはありません。これらのラベルが 3 項ライブラリで実装されている方法と関係があると思われますが、2 回目に呼び出されたときに savefig の動作が異なるのはなぜですか?

ternary_plot_1.png ternary_plot_2.png

4

0 に答える 0