matplotで少しだけきれいなグラフに挑戦

普段matplotlibでグラフを書くときはかなり適当で、見た目はあまり気にしないのだが、 ときどききれいなグラフを書きたくなることもある。

今回試しに書いたソースコードを備忘用として掲載しておく。

# いつも書いている部分
from numpy import linspace, cos, sin, pi
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = (32.0, 24.0)
plt.rcParams["lines.markersize"] = 2


# 今回書いた関数
def draw():
    x = linspace(-pi, pi, 1000)
    plt.plot(x, cos(x), label="cos", lw=5, color="#00BCD4")
    plt.plot(x, sin(x), label="sin", lw=5, color="#FFC107")
    plt.xticks(
        [-pi, -pi / 2, 0, pi / 2, pi],
        [r"$-\pi$", r"$-\frac{\pi}{2}$", "0", r"$\frac{\pi}{2}$", r"$\pi$"],
        fontsize=30,
    )
    plt.yticks([-1, 0, 1], fontsize=30)
    plt.grid()
    plt.legend(fontsize=20, framealpha=0.0, bbox_to_anchor=(1.0, 0.95))
    plt.title("cosine & sine", fontsize=30)
    plt.axis("scaled")
    plt.xlim([-pi, pi])
    plt.savefig("cosine-and-sine.png", bbox_inches="tight", transparent=True)
    plt.cla()


if __name__ == "__main__":
    draw()

matplotlibは大変機能が多く、きれいにしようと調べ始めると、時間があっという間に経ってしまう。

自分のよく使用する機能を適当にまとめた、こういったexampleが役に立つと思う。