====== matplotlib ======
Qiitaに良い記事を見つけたので、メモ。初めてmatplot使うときにすごくわかりやすかったです。ほとんど馬場の忘備録ですが、論文とかでグラフ作成の必要が出たときに見返して大事な部分だけをさらえる内容にしています。
* https://qiita.com/cnloni/items/20b5908fbae755192498
===== bar plot =====
棒グラフのサンプルです。各barに数値をいれて、ラベルを90度回転させてる例。matplotlibはversion3.3以上を利用してください。
{{ :python:barplot.png |}}
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
def autolabel(rects, xpos='center'):
"""
Attach a text label above each bar in *rects*, displaying its height.
*xpos* indicates which side to place the text w.r.t. the center of
the bar. It can be one of the following {'center', 'right', 'left'}.
"""
ha = {'center': 'center', 'right': 'left', 'left': 'right'}
offset = {'center': 0, 'right': 1, 'left': -1}
for rect in rects:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(offset[xpos]*3, 0), # use 3 points offset
textcoords="offset points", # in both directions
ha=ha[xpos], va='bottom')
# plotting data
plot_data = [20, 35, 30, 35, 27, 50, 35, 30, 35, 27]
x_labels = ['G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9', 'G10']
index = np.arange(len(plot_data)) # the x locations for the groups
width = 0.35 # the width of the bars
fig, ax = plt.subplots(figsize=(15, 4.0))
rects = ax.bar(index, plot_data, width, label='Men')
ax.set_box_aspect(0.2)
ax.autoscale()
# Add some text for labels, title and custom x-axis tick labels, etc.
ax.set_ylabel('Scores')
ax.set_title('Scores by group')
ax.set_xticks(index)
ax.set_xticklabels(x_labels)
ax.legend()
autolabel(rects, "center")
fig.tight_layout()
plt.margins(0.01, 0.1)
plt.subplots_adjust(bottom=0.10)
# plt.grid(True)
plt.xticks(index, x_labels, rotation='vertical')
plt.savefig('barplot.png', dpi=72)
plt.show()
===== box plot =====
箱ひげ図を描く最小のサンプルは次の通り。
test