matplotlib を使って折れ線グラフ、棒グラフ、混合棒グラフを描画する
2022-02-25 05:08:50
matplotlibの紹介
- Matplotlib は、Python用のグラフ描画ライブラリです。以下の機能を備えています。 NumPy を提供し、効率的な MatLab オープンソースの代替品です。また、以下のようなグラフィックツールキットと組み合わせて使用することもできます。 PyQt と wxPython .
- Matplotlib ライブラリをインストールするコマンドです。cmd コマンドウィンドウで次のように入力します。 pip install matplotlib .
matplotlib は折れ線グラフを描画する
- 折れ線グラフをプロットする
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
# Handle garbled code
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # display Chinese in bold
x = [1, 2, 3, 4]
y = [10, 50, 20, 100]
# "r" means red, ms used to set the size of *
plt.plot(x, y, "r", marker='*', ms=10, label="a")
# plt.plot([1, 2, 3, 4], [20, 30, 80, 40], label="b")
plt.xticks(rotation=45)
plt.xlabel("release date")
plt.ylabel("Number of novels")
plt.title("80novels.com activity")
# upper left Display legend a to the upper left corner
plt.legend(loc="upper left")
# Show specific values on the line graph, ha parameter controls horizontal alignment, va controls vertical alignment
for x1, y1 in zip(x, y):
plt.text(x1, y1 + 1, str(y1), ha='center', va='bottom', fontsize=20, rotation=0)
plt.savefig("a.jpg")
plt.show()
グラフィック効果が表示されます。
- 注意事項 セーブフィグ () として保存されたグラフは 画像 その 表示 ()はグラフを表示することです。
- 複数のダッシュ線を引く
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # display Chinese in bold
x = [1, 2, 3, 4]
y1 = [45, 50, 20, 100]
y2 = [26, 10, 76, 25]
y3 = [11, 66, 55, 88]
y4 = [69, 50, 35, 100]
plt.plot(x, y1, marker='*', ms=10, label="a")
plt.plot(x, y2, marker='*', ms=10, label="b")
plt.plot(x, y3, marker='*', ms=10, label="c")
plt.plot(x, y4, marker='*', ms=10, label="d")
plt.xticks(rotation=45)
plt.xlabel("release date")
plt.ylabel("Number of novels")
plt.title("80novels.com activity")
plt.legend(loc="upper left")
# Show specific values on the line graph, ha parameter controls horizontal alignment, va controls vertical alignment
for y in [y1, y2, y3, y4]:
for x1, yy in zip(x, y):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
plt.savefig("a.jpg")
plt.show()
グラフィック効果が表示されます。
matplotlib が棒グラフを描画する
- 通常の棒グラフをプロットする
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # display Chinese in bold
# Construct the data
x = [1, 2, 3, 4]
y = [450, 500, 200, 1000]
# Plot
plt.bar(x=x, height=y, label='Book Library Book', color='steelblue', alpha=0.8)
# Show specific values on the bar, ha parameter controls horizontal alignment, va controls vertical alignment
for x1, yy in zip(x, y):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# Set the title
plt.title("80novel.com active")
# Set the names for the two axes
plt.xlabel("Release date")
plt.ylabel("Number of novels")
# Show legend
plt.legend()
plt.savefig("a.jpg")
plt.show()
グラフィック効果が表示されます。
- 複数セットの棒グラフをプロットする
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # display Chinese in bold
# Construct the data
x = ['2015', '2016', '2017', '2018', '2019']
y1 = [4500, 5000, 2000, 7000, 10000]
y2 = [5200, 7000, 5000, 9000, 11000]
# Plot
plt.bar(x=x, height=y1, label='python', color='steelblue', alpha=0.8)
plt.bar(x=x, height=y2, label='java', color='indianred', alpha=0.8)
# Show specific values on the bar, ha parameter controls horizontal alignment, va controls vertical alignment
for x1, yy in zip(x, y1):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
for x1, yy in zip(x, y2):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# Set the title
plt.title("python vs java book comparison")
# Set names for both axes
plt.xlabel("year")
plt.ylabel("sales")
# Show legend
plt.legend()
plt.savefig("a.jpg")
plt.show()
グラフィック効果が表示されます。
- 棒グラフの棒を横に並べてプロットする
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # display Chinese in bold
# Construct the data
x = ['2015', '2016', '2017', '2018', '2019']
y1 = [4500, 5000, 2000, 7000, 10000]
y2 = [5200, 7000, 5000, 9000, 11000]
bar_width = 0.3
# Change the x-axis data to use range(len(x_data), which is 0, 1, 2...
plt.bar(x=range(len(x)), height=y1, label='python', color='steelblue', alpha=0.8, width=bar_width)
# Change the x-axis data to use np.range(len(x_data))+bar_width,
# That's bar_width, 1+bar_width, 2+bar_width... This juxtaposes with the first bar chart
plt.bar(x=np.range(len(x)) + bar_width, height=y2, label='java', color='indianred', alpha=0.8, width=bar_width)
# Display specific values on the bar chart, ha parameter controls horizontal alignment, va controls vertical alignment
for x1, yy in enumerate(y1):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
for x1, yy in enumerate(y2):
plt.text(x1 + bar_width, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# Set the title
plt.title("python vs. java")
# Set names for the two axes
plt.xlabel("year")
plt.ylabel("sales")
# Show legend
plt.legend()
plt.savefig("a.jpg")
plt.show()
効果をグラフィカルに表示します。
matplotlib は混合棒グラフを描画します。
- 列線混合プロットを行う
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # display Chinese in bold
# Construct the data
x = [2, 4, 6, 8]
y = [450, 500, 200, 1000]
# Plot
plt.bar(x=x, height=y, label='Book Library Book', color='steelblue', alpha=0.8)
# Show specific values on the bar, ha parameter controls horizontal alignment, va controls vertical alignment
for x1, yy in zip(x, y):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# Set the title
plt.title("80novel.com active")
# Set the names for the two axes
plt.xlabel("Release date")
plt.ylabel("Number of novels")
# Show legend
plt.legend()
# Draw a line graph
plt.plot(x, y, "r", marker='*', ms=10, label="a")
plt.xticks(rotation=45)
plt.legend(loc="upper left")
plt.savefig("a.jpg")
plt.show()
グラフィック効果が表示されます。
関連
-
[解決済み】twinx と twiny を一緒に使う matplotlib (twinxy のようなもの)
-
TclError: 表示名がない、$DISPLAY環境変数の解決策もない。
-
[解決済み] matplot の各極軸に xv ラインを追加する方法
-
[解決済み] matplotlib で swarm プロットを作成する方法
-
[解決済み] pad_inches=0 と bbox_inches="tight" は、宣言された figsize よりも小さいプロットを作成します。
-
[解決済み] matplotlib でプロットをクリアするために cla()、clf() または close() をいつ使うか?
-
matplotlib のエラーです。TypeError: -でサポートされていないオペランドタイプ: 'str' および 'str'
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例