Python 基礎 グラフ
メモ。グラフいろいろ。
#グラフ import matplotlib.pyplot as plt #matplotlib.pyplotモジュールの読み込み data=[2, 2.3, 4.1, 2.4, 5.3, 3.2, 4.6] #グラフ化するデータ plt.plot(data) #グラフを書く plt.show() #グラフを表示する # x軸の要素はインデックス番号になります #x軸, y軸を指定 import matplotlib.pyplot as plt price=[200,300,400,500,600] count=[31,29,25,28,26] plt.plot(price,count) #(x軸 price, y軸 count) plt.show() #タイトルと軸ラベルを付ける import matplotlib.pyplot as plt price=[200,300,400,500,600] count=[31,29,25,28,26] plt.plot(price,count) #(x軸 price, y軸 count) plt.title("count - price") plt.xlabel("price") plt.ylabel("count") #日本語だとIPythonコンソールだと文字化け #plt.title("個数 - 価格") #plt.xlabel("価格") #plt.ylabel("個数") plt.show() #グリッドとマーカーを表示する import matplotlib.pyplot as plt price=[200,300,400,500,600] count=[31,29,25,28,26] plt.plot(price,count,marker="o") #(x軸 price, y軸 count) marker="o" 小文字のオー plt.title("count - price") plt.xlabel("price") plt.ylabel("count") plt.grid(True) #グリッド表示 plt.show() #Sinグラフを描く import matplotlib.pyplot as plt import math X=range(0,360) #x軸の値 Y=[math.sin(math.radians(d)) for d in X] #y軸の値 plt.plot(X,Y) #グラフを書く 折れ線グラフの書き方と同じ plt.savefig("sin.png") #グラフ画像を保存する plt.show() #表示する #複数のグラフを重ねる import matplotlib.pyplot as plt import math X=range(0,360) #x軸の値 S=[math.sin(math.radians(d)) for d in X] #sin の値 C=[math.cos(math.radians(d)) for d in X] #cos の値 plt.plot(X,S) #sinグラフを書く plt.plot(X,C) #cosグラフを書く plt.show() #表示する #折れ線やマーカーを違う種類に import matplotlib.pyplot as plt X=[100,200,300,400,500] Y1=[40,65,80,100,90] Y2=[34,56,75,91,79] Y3=[25,47,68,76,73] Y4=[15,40,52,64,69] plt.plot(X,Y1,marker="o",color="blue",linestyle="-",label="Y1") plt.plot(X,Y2,marker="v",color="red",linestyle="--",label="Y2") plt.plot(X,Y3,marker="^",color="green",linestyle="-.",label="Y3") plt.plot(X,Y4,marker="d",color="m",linestyle=":",label="Y4") plt.legend(loc="upper left") #凡例を作る グラフの左上に表示 plt.show() #縦棒グラフ import matplotlib.pyplot as plt labels=["A","B","C","D","E","F","G","H","I","J"] x_pos=range(0,10) #0~9 V=[91,45,17,88,47,87,49,56,67,77] plt.bar(x_pos,V,tick_label=labels) #縦棒グラフを書く X軸に表示するグラフのラベルを表示します plt.show() #横棒グラフ import matplotlib.pyplot as plt labels=["A","B","C","D","E"] y_pos=range(0,5) V=[91,45,17,88,47] plt.barh(y_pos,V,tick_label=labels) #横棒グラフを書く 軸に表示するグラフのラベルを表示します plt.show() #積み上げ棒グラフ import matplotlib.pyplot as plt labels=["Green","Red","Yellow","Blue","Black","White"] x_pos=range(0,6) A=[34,46,54,45,56,37] B=[17,47,55,67,38,49] bar1=plt.bar(x_pos,A,color="g") #グラフAを書く bar2=plt.bar(x_pos,B,color="c",bottom=A) #グラフを書く bottom=A→グラフAに積み上げます plt.xticks(x_pos,labels,rotation="vertical") plt.legend((bar1,bar2),("man","woman"),loc="upper right") plt.show() #散布図 import matplotlib.pyplot as plt X=[91,45,17,88,47,87,49,56,67,23,86,20,60,67,30,41,91,55,37,14] Y=[39,17,45,32,20,14,11,48,41,13,21,40,13,14,11,40,21,18,50,25] plt.scatter(X,Y) #グラフを描く plt.show() #散布図 マーカーの種類を色を設定 import matplotlib.pyplot as plt X1=[91,45,17,88,47,87,49,56,67,23,86,20,60,67,30,41,91,55,37,14] Y1=[39,17,45,32,20,14,11,48,41,13,21,40,13,14,11,40,21,18,50,25] X2=[97,98,33,93,59,63,30,48,88,56,91,65,69,66,67,92,96,59,49,34] Y2=[62,77,60,57,46,45,49,57,60,54,53,72,46,72,59,76,67,49,42,42] plt.scatter(X1,Y1,marker="+",color="red") plt.scatter(X2,Y2,marker="^",color="green") plt.show() #散布図 マーカーのサイズと透明度 import matplotlib.pyplot as plt import numpy as np X,Y=np.random.rand(100),np.random.rand(100) #rand(100) 0~1が入った100個の配列を作成 #s=500 マーカーのサイズ(初期値20) #alpha=0.5 透明度(0~1) #linewidths=2 線幅 #edgecolors="b" マーカーの線の色 plt.scatter(X,Y,marker="o",s=500,color="cyan",alpha=0.5, linewidths=2,edgecolors="b") plt.show() #散布図 マーカーの大きさで表現する import matplotlib.pyplot as plt import numpy as np X,Y=np.random.rand(100),np.random.rand(100) V=np.random.rand(100) * 1000 + 50 #サイズを決めるデータの配列 plt.scatter(X,Y,s=V,c="b",alpha=0.3,linewidths=1,edgecolors="b") plt.show() #散布図 値に応じてマーカーの色を変える import matplotlib.pyplot as plt import numpy as np X,Y=np.random.rand(100),np.random.rand(100) V=np.random.rand(100) #色の濃淡を決めるデータの配列 plt.scatter(X,Y,s=200,c=V,cmap="Blues",edgecolors="b") #cmap="" カラーマップで塗色を決めます plt.colorbar() #カラーバーを表示する plt.grid(True) #グリッドを表示する plt.show() #円グラフ import matplotlib.pyplot as plt labels=["E","D","C","B","A"] #ラベル(反時計回り) V=[17,25,47,68,91] #値(反時計回り) ex=[0,0,0,0.1,0] #パイのきりだし plt.pie(V,explode=ex,labels=labels,autopct='%1.1f%%',startangle=90) plt.show()