import matplotlib.pyplot as plt
# リスト5.5.1:テキストの描画
fig = plt.figure(figsize=(3, 3))
ax = fig.add_subplot(111)
# テキストの描画
ax.text(2, 4, "Text", size=40)
ax.set_xticks([i * 2 for i in range(6)])
ax.set_yticks([i * 2 for i in range(6)])
ax.grid(linestyle="-") # グリッドライン描画
plt.show()
# リスト5.5.2:フォントの設定
fig = plt.figure(figsize=(3, 3))
ax = fig.add_subplot(111)
# フォント設定をしてテキストを描画
ax.text(0.2, 0.6, "Text", alpha=0.5, color="Red", size=40)
# フォント設定をしてテキスト描画 (辞書使用)
fps = {
"family": "fantasy",
"style": "italic",
"weight": "heavy",
"size": 40,
"color": "Green",
}
ax.text(0.2, 0.2, "Text", alpha=0.5, color="Red", fontdict=fps)
ticks = [0.2 * i for i in range(6)]
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.grid(linestyle="-")
plt.show()
# リスト5.5.3:テキストボックスの書式設定
fig = plt.figure(figsize=(3, 3))
ax = fig.add_subplot(111)
# テキストボックスの書式辞書
boxprops = {
"facecolor": "pink",
"edgecolor": "red",
"alpha": 0.5,
"boxstyle": "Sawtooth",
"linewidth": 2,
}
# テキストボックスの描画
ax.text(0.07, 0.5, "テキストボックス\nの書式辞書による\n設定", bbox=boxprops, size=18)
ax.text(0.07, 0.2, "塗りつぶし色の設定", bbox={"alpha": 0.2}, backgroundcolor="Blue", size=16)
ticks = [0.2 * i for i in range(6)]
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.grid(linestyle="-")
plt.show()
# リスト5.5.4:テキストボックスの水平方向の配置設定
fig = plt.figure(figsize=(3, 3))
ax = fig.add_subplot(111)
x, y = [0.5, 0.5], [0, 4]
ax.plot(x, y)
# テキストボックスの描画 (水平方向の配置)
ax.text(0.5, 3, "left", horizontalalignment="left", size=20)
ax.text(0.5, 2, "center", horizontalalignment="center", size=20)
ax.text(0.5, 1, "right", horizontalalignment="right", size=20)
ax.set_yticks([i for i in range(5)])
ax.set_xticks([0.5 * i for i in range(3)])
plt.show()
# リスト5.5.5:テキストボックスの垂直方向の配置設定
fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(111)
# ベースライン描画
x, y = [0, 9], [0.5, 0.5]
ax.plot(x, y)
# テキストボックスの描画 (垂直方向の配置)
ax.text(0, 0.5, "bottom", verticalalignment="bottom", size=20)
ax.text(2.5, 0.5, "baseline", verticalalignment="baseline", size=20)
ax.text(5.5, 0.5, "center", verticalalignment="center", size=20)
ax.text(8, 0.5, "top", verticalalignment="top", size=20)
ax.set_xticks([i * 3 for i in range(4)])
ax.set_yticks([0.5 * i for i in range(3)])
plt.show()
# リスト5.5.6:テキストボックス内文字列の水平方向の配置設定
fig = plt.figure(figsize=(4, 7))
ax = fig.add_subplot(111, xlim=[0, 5], ylim=[0, 14])
# テキストボックス内文字列の水平方向配置を設定して描画
ax.text(1, 10, "左揃え\nLeft\nalignment", multialignment="left", size=20)
ax.text(1, 6, "中央揃え\nCenter\nalignment", multialignment="center", size=20)
ax.text(1, 2, "右揃え\nRight\nalignment", multialignment="right", size=20)
ax.grid(linestyle="-")
plt.show()
# リスト5.5.7:テキストボックス内文字列の行間の設定
fig = plt.figure(figsize=(3.5, 5))
ax = fig.add_subplot(111, xlim=[0, 4], ylim=[0, 7])
# 行間の設定
ax.text(1, 5, "行間 1\nspace 1", linespacing=1, size=20)
ax.text(1, 3, "行間 1.5\nspace 1.5", linespacing=1.5, size=20)
ax.text(1, 1, "行間 2\nspace 2", linespacing=2, size=20)
ax.grid(linestyle="-")
plt.show()
# リスト5.5.8:テキストボックスの回転の設定
fig = plt.figure(figsize=(8, 8))
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
# ベースライン描画
axes = [ax1, ax2, ax3, ax4]
x, y = [0.5, 0.5], [0, 1]
for ax in axes:
ax.plot(x, y, color="SteelBlue")
ax.plot(y, x, color="SteelBlue")
# サブプロット1~3の描画
ax1.text(0.5, 0.5, "horizontal", rotation="horizontal", size=12)
ax2.text(0.5, 0.5, "vertical", rotation="vertical", size=12)
ax3.text(
0.5,
0.5,
"rotation=45\nwith anchor\nsetting",
rotation=45,
rotation_mode="anchor",
size=12,
)
# サブプロット4の描画
# 配置比較用テキストボックス描画
boxprops = {"facecolor": "Pink", "edgecolor": "Pink", "alpha": 0.5}
ax4.text(
0.5,
0.5,
"rotation=45\nwith anchor\nsetting",
rotation=0,
bbox=boxprops,
color="white",
size=12,
)
# テキスト描画
ax1.text(0, 0.9, "1)", size=16)
ax2.text(0, 0.9, "2)", size=16)
ax3.text(0, 0.9, "3)", size=16)
ax4.text(0, 0.9, "4)", size=16)
# 回転したテキストボックス描画
boxprops = {"facecolor": "None", "edgecolor": "Pink"}
ax4.text(0.5, 0.5, "rotation=45\nwithoutanchor\nsetting", bbox=boxprops, rotation=45, size=12)
for ax in axes:
ax.set_xticks([0.5 * i for i in range(3)])
ax.set_yticks([0.5 * i for i in range(3)])
plt.show()