Pythonを使って折れ線グラフを描く

序文

最近、深層学習と天気図を含む天気予報に関する論文を完成させています。このプロセスでの私の経験の要約をいくつか書いて、この機会を利用して同僚とコミュニケーションをとる必要があると思います。

1. 基本コマンド

ディープラーニングを使用する場合、モデルの効果を確認するために必ず描画コマンド、描画ロスや val_loss などを使用します。

plt.plot(x,y,lw=,ls=,c=, alpha=, label=)

x:x座標のデータ

y: y座標のデータ

lw: 線幅を指定します

ls: 線のスタイルを指定します。ls='-' は実線、ls='--' は破線、ls='-.' は点線、ls=':' は破線です。

c: 線の色を指定します。c='r' は赤、c='k' は黒、c='y' は黄色です

alpha: 線の透明度を指定します。値が小さいほど透明度が高くなります。

label: 行の意味を指定します。

コード例:

#导入库
import matplotlib.pyplot as plt
import numpy as np
#设定画布。dpi越大图越清晰,绘图时间越久
fig=plt.figure(figsize=(4, 4), dpi=300)
#导入数据
x=list(np.arange(1, 21))
y=np.random.randn(20)
#绘图命令
plt.plot(x, y, lw=4, ls='-', c='b', alpha=0.1)
plt.plot()
#show出图形
plt.show()
#保存图片
fig.savefig("画布")

描画結果:

2. Excelデータを元に描画

Pythonにはpandasというデータ処理用のライブラリパッケージがあります。

# 导包
import pandas as pd
# 读取excel文件
pd.read_excel('文件所在路径')

Excel でデータの列を抽出します: filename['列名']、戻り値はリストです。

Excel で必要なデータを取得したら、次のステップは描画です。

...
# 第一步绘制画布
fig=plt.figure(figsize=(7, 4), dpi=200)
# 第二步添加绘图区.
# subplot命令是在画布上添加一个绘图区,括号里的内容转述为汉字为:“创建一个一行一列的绘图区(一行一列就只有一个绘图区),ax1是第一个绘图区,facecolor用来设置画布背景颜色,默认为白色
ax1 = fig.add_subplot(111, facecolor='green')  

2 行 2 列 (または他の次元) のサブグラフ領域をそれぞれ ax1、ax2、ax3、ax4 で作成する場合:

ax1=fig.add_subplot(221)
ax2=fig.add_subplot(222)
ax3=fig.add_subplot(223)
ax4=fig.add_subplot(224)

効果は次のとおりです。

3. グラフの x (または y) 座標軸を結合し、凡例を追加します legend()

上の図の効果を実現するために、焦点は ax2=ax1.twinx() にあり、ax2 と ax1 は x 軸を共有しますが、ax1 は左側の y 軸を使用し、ax2 は右側の y 軸を使用します。


fig=plt.figure(figsize=(7,4),dpi=200)        # 新建画布
ax1=fig.add_subplot(111)                     # 设置绘图区
line1,=ax1.plot(times,temps,'r:',lw=1,label='气温')    # 创建折线
bar1 =ax1.bar(times,rains,color='b',label='降水量')    # 创建条状
ax2=ax1.twinx()                            # 设置共用x轴
line2,=ax2.plot(times,pressures,'k-',lw=1.2,label='气压')

# legend用来设置图例,还可以添加参数ncol='',该参数用来设置图例的列数,用于对齐
plt.legend((line1,bar1,line2),('气温','降水量','气压'),loc='center left',frameon=False,framealpha=0.5)       
ax1.set_xlabel('时间 \ h')                # 设置x轴
ax1.set_ylabel('气温(℃)\降水量(mm)')  # 设置左侧y轴
ax2.set_ylabel('气压(hPa)')             # 设置右侧y轴
plt.title("----")                         # 设置图的名称
plt.show()

4.フォントスタイルを調整する

辞書を使用して調整し、変更する必要があるパラメータ名と指定された値のサイズを辞書に保存し、さらにパラメータを保存します。

font={'size':30,'color':'red'}
ax.set_xlabel('--',fontdict=font)
ax.set_ylabel('--',fontdict=font)

5. グリッド線を引く

ax.grid()  # 开启x和y轴的网格
ax.grid(ls='--')   # 开启x和y轴的虚线网格
ax.grid(True,axis='x')   # 开启x轴的网格
ax.grid(True,axis='y')   # 开启y轴的网格

6. 2 つのグラフの座標軸を結合します。

次のようにキャンバスを設定します。

fig,((ax1),(ax2))=plt.subplots(2,1,figsize=(5,5),dpi=200,sharex='all')
fig.subplots_adjust(hspace=0)

あまり使われない7つの機能

1.ax.set_ylim()、ax.set_xlim()

x(y) 軸を共有する場合、両側の y(x) 軸のゼロスケールが不一致になり、座標軸の範囲を設定するために xlim と ylim が使用されます。

2.set_minor_locator()、set_major_locator()

set_minor_locator は主スケールを基準に副スケールのサイズを設定または変更するために使用され、set_major_locator は主スケールの単位表示を変更するために使用されます。使用する前に、ライブラリ パッケージをインポートする必要があります。

import matplotlib.ticker as ticker

例えば:

(1) ここでは副目盛を0.1単位に設定します。

ax1.yaxis.set_minor_locator(ticker.MultipleLocator(0.1))

(2) 右側のメインスケールを 10 単位ごとに表示するように設定します。

ax2.yaxis.set_major_locator(ticker.MultipleLocator(10))

おすすめ

転載: blog.csdn.net/linxi4165/article/details/126086680