Pythonのmatplotlibで折れ線グラフを描く方法まとめ

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=0X 軸ラベルの表示が 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データ分析:折れ線グラフの描画および散布図

おすすめ

転載: blog.csdn.net/weixin_43981621/article/details/123095683