1. ホーム
  2. python

[解決済み] Matplotlib - 高解像度のグラフを描くには?

2022-06-29 16:29:54

質問

私はいくつかの実験結果をプロットするためにmatplotlibを使用しました(こちらで説明されています。 ファイルのループとプロット . しかし、画像に右クリックして保存すると、非常に悪い品質/低解像度の画像が得られます。

from glob import glob
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

# loop over all files in the current directory ending with .txt
for fname in glob("./*.txt"):
    # read file, skip header (1 line) and unpack into 3 variables
    WL, ABS, T = np.genfromtxt(fname, skip_header=1, unpack=True)

    # first plot
    plt.plot(WL, T, label='BN', color='blue')

    plt.xlabel('Wavelength (nm)')
    plt.xlim(200,1000)
    plt.ylim(0,100)
    plt.ylabel('Transmittance, %')
    mpl.rcParams.update({'font.size': 14})
    #plt.legend(loc='lower center')
    plt.title('')
    plt.show()
    plt.clf()


    # second plot
    plt.plot(WL, ABS, label='BN', color='red')
    plt.xlabel('Wavelength (nm)')
    plt.xlim(200,1000)
    plt.ylabel('Absorbance, A')
    mpl.rcParams.update({'font.size': 14})
    #plt.legend()
    plt.title('')
    plt.show()
    plt.clf()

探しているグラフの例 グラフの例

どのように解決するのですか?

あなたは savefig() で画像ファイルに書き出すことができます。

plt.savefig('filename.png')

また、指定する dpi 引数に何らかのスカラー値を指定することもできます。

plt.savefig('filename.png', dpi=300)