Pythonのmatplotlibで折れ線グラフを描く方法のまとめ(このブログを読めば十分です)
この記事では主にPythonの組み込みライブラリmatplotlibを使って折れ線グラフを描く方法を記録します。
目次
1.ライブラリをインポートする
matplotlib ライブラリを直接インポートします。
import matplotlib.pyplot as plt
2. データの準備
list を使用して、横軸と縦軸のデータをそれぞれ準備します。
X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]
3. イメージ図の描画
折れ線グラフを直接描画します。
plt.figure()
# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
# X2的分布
plt.plot(X2, Y2,label="X2", color="#3399FF", marker='o', linestyle="-")
# X3的分布
plt.plot(X3, Y3, label="X3", color="#F9A602", marker='s', linestyle="-")
# X4的分布
plt.plot(X4, Y4, label="X4", color="#13C4A3", marker='d', linestyle="-")
# plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1)) # 将横坐标的值全部显示出来
X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
plt.xticks(X1,X_labels,rotation=0)
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
上記の結果はプロテストとして有効です。
4. コードを完成させる (直接コピーして実行)
import matplotlib.pyplot as plt
X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]
plt.figure()
# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
# X2的分布
plt.plot(X2, Y2,label="X2", color="#3399FF", marker='o', linestyle="-")
# X3的分布
plt.plot(X3, Y3, label="X3", color="#F9A602", marker='s', linestyle="-")
# X4的分布
plt.plot(X4, Y4, label="X4", color="#13C4A3", marker='d', linestyle="-")
# plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1)) # 将横坐标的值全部显示出来
X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
plt.xticks(X1,X_labels,rotation=0)
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
描画効果を次の図に示します。
5. 線種、線色、線上のドットマーク、X軸ラベルの設定方法
5.1 線種の設定方法
線種の設定は主にステートメントplt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
内のパラメータを通じてlinestyle=
設定されます。パラメータ値とその意味のタイプは次のように比較されます。
5.2 線色の設定方法
線の色の設定は主にステートメントplt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
のパラメータによってcolor=
設定されます:、パラメータ値とその意味の種類は次のように比較されます。
さらに、色は色の RGB 値によって設定できます。たとえば、ステートメント: plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
is色の RGB 値を設定するには: #FF3B1D、次のように、一般的に使用されるいくつかの色の RGB 値を記録します。
シリアルナンバー | RGB値 | 色の効果 |
---|---|---|
1 | #FF3B1D | 赤 |
2 | #3399FF | 青 |
3 | #F9A602 | 黄色 |
4 | #13C4A3 | 緑 |
5 | #FF652D | オレンジ |
6 | #D09E88 | 素朴な |
7 | #CC7112 | ダークブラウン |
8 | #F2BDD0 | ピンク |
より明るい色については、Bright Color RGB Value Web サイトのリンクを参照してください。
5.3 オンラインドットマークの設定方法
線種の設定は主にステートメントplt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
内のパラメータmarker=
を通じて設定されます: データ ポイントをドットでマークする必要がない場合は、このパラメータを設定する必要はありません。パラメータ設定を直接削除するだけです。パラメータ値とパラメータの比較その意味の種類は次のとおりです。
5.4 X軸スケールラベルの設定方法
X 軸のスケールが人為的に設定されていない場合、描画されたイメージの X 軸は特定の値をスキップします。たとえば、X 軸の範囲が [-5,5] の場合、-4、- のみとなります。 2、0、2、4 この点、真ん中の値は直接省略 これらの値を表示したい場合、解決策は 3 つあります (1)
X のスケール値を直接文字列に変換する、つまり、たとえば、直接変換 X1、X2、X3、および X4 コレクション内の各要素は、文字列型に直接変換できます。x1 の代入ステートメントの後に次のコード行を追加します。
X1 = [str(i) for i in X1] #为了让每个值不被省略,把list中所有的元素都转化成str格式
X2 = [str(i) for i in X2] #为了让每个值不被省略,把list中所有的元素都转化成str格式
X3 = [str(i) for i in X3] #为了让每个值不被省略,把list中所有的元素都转化成str格式
X4 = [str(i) for i in X4] #为了让每个值不被省略,把list中所有的元素都转化成str格式
完全なコードは次のとおりです。
import matplotlib.pyplot as plt
X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]
X1 = [str(i) for i in X1] #为了让每个值不被省略,把list中所有的元素都转化成str格式
X2 = [str(i) for i in X2] #为了让每个值不被省略,把list中所有的元素都转化成str格式
X3 = [str(i) for i in X3] #为了让每个值不被省略,把list中所有的元素都转化成str格式
X4 = [str(i) for i in X4] #为了让每个值不被省略,把list中所有的元素都转化成str格式
plt.figure()
# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
# X2的分布
plt.plot(X2, Y2,label="X2", color="#3399FF", marker='o', linestyle="-")
# X3的分布
plt.plot(X3, Y3, label="X3", color="#F9A602", marker='s', linestyle="-")
# X4的分布
plt.plot(X4, Y4, label="X4", color="#13C4A3", marker='d', linestyle="-")
# plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1)) # 将横坐标的值全部显示出来
# X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
# plt.xticks(X1,X_labels,rotation=0)
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
(2) X 軸データの表示間隔をコードで直接設定します。これは、MultipleLocator(1)
X 軸表示データの間隔が 1 であることを意味します。
import matplotlib.ticker as ticker
plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1)) # 将横坐标的值全部显示出来
完全なコードは次のとおりです。
import matplotlib.ticker as ticker
import matplotlib.pyplot as plt
X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]
plt.figure()
# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
# X2的分布
plt.plot(X2, Y2,label="X2", color="#3399FF", marker='o', linestyle="-")
# X3的分布
plt.plot(X3, Y3, label="X3", color="#F9A602", marker='s', linestyle="-")
# X4的分布
plt.plot(X4, Y4, label="X4", color="#13C4A3", marker='d', linestyle="-")
plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1)) # 将横坐标的值全部显示出来,X轴数据显示间隔为1
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
(3) X 軸のラベル リスト X_labels を直接リセットすることで、X 軸の表示を変更でき、値の文字列に変更できるだけでなく、他の文字列形式に変更することもできます。rotation=0
X 軸ラベルの表示が 0 度回転されていることを示します。この回転は、一部の X 軸ラベルが長すぎて表示が重なることを防ぐためのものです。そのため、表示スペースを増やすために回転されます。
import matplotlib.ticker as ticker
X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
plt.xticks(X1,X_labels,rotation=0)
表示効果を次の図に示します。
回転=0 を回転=20 に書き換えると、X 軸のラベル表示効果が次のように変わります。
コードは次のとおりです。
X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
plt.xticks(X1,X_labels,rotation=20)
表示効果は次のとおりです。
必要に応じて、X 座標を目的のラベル形式に書き換えることもできます。たとえば、文字に変更します。
X_labels = ['-a','-b','-c','-d','-e','a','b','c','d','e','f']
plt.xticks(X1,X_labels,rotation=20)
表示効果は次のとおりです。
完全なコードは次のとおりです。
import matplotlib.ticker as ticker
import matplotlib.pyplot as plt
X1 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y1 = [971,1344,1953,3064,4766,15522,4389,2615,1696,1210,798]
X2 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y2 = [554,861,1238,1979,3206,10663,2916,1639,1047,704,489]
X3 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y3 = [363,547,801,1254,2205,7535,1984,1115,677,464,340]
X4 = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
Y4 = [293,478,681,1070,1819,6563,1750,953,583,410,287]
# X1 = [str(i) for i in X1] #为了让每个值不被省略,把list中所有的元素都转化成str格式
# X2 = [str(i) for i in X2] #为了让每个值不被省略,把list中所有的元素都转化成str格式
# X3 = [str(i) for i in X3] #为了让每个值不被省略,把list中所有的元素都转化成str格式
# X4 = [str(i) for i in X4] #为了让每个值不被省略,把list中所有的元素都转化成str格式
plt.figure()
# X1的分布
plt.plot(X1, Y1, label="X1", color="#FF3B1D", marker='*', linestyle="-")
# X2的分布
plt.plot(X2, Y2,label="X2", color="#3399FF", marker='o', linestyle="-")
# X3的分布
plt.plot(X3, Y3, label="X3", color="#F9A602", marker='s', linestyle="-")
# X4的分布
plt.plot(X4, Y4, label="X4", color="#13C4A3", marker='d', linestyle="-")
# plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1)) # 将横坐标的值全部显示出来
X_labels = ['-5','-4','-3','-2','-1','0','1','2','3','4','5']
plt.xticks(X1,X_labels,rotation=20)
plt.legend()
plt.title("Lake.bmp")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
6. 参考リンク
参考リンクは主に以下の4つです。
(1) X軸の方法を設定するPython xticks()関数 - スケール、ラベル
(2) Pythonの描画(plt.) X軸の横軸を省略した場合はどうすればいいですか(中断中) | すべての作り方 横軸のx値を表示 | 横軸の角度を調整する方法
(3) matplotlib.pyplot.plot()のパラメータの詳細説明
(4) Pythonデータ分析:折れ線グラフの描画および散布図