pythonベースのデータ可視化matplotlib
5170 ワード
データ可視化アイコンの描画にはmatplotlibライブラリ、インストール方法:cmd下pip install matplotlib、numpyライブラリ、インストール方法:cmd下pip install numpyが必要です.numpyを使用して画像描画に必要なデータを作成し、すでにデータがある場合は配列などにデータを読み取ることができ、import matplotlibを通過する.pyplot as pltはpltをインポートしてデータを描画するなどの関連操作を行う.
pltでよく使われるパラメータの意味:lsは描画する線のタイプを表し、lw(linewidth)は描画線の幅を表し、labelという線の名前、colorまたはcは色を表し、weightはフォント属性を表し、alphaは色の濃度を表し、loclabelラベルの位置を表す.簡単な例は次のとおりです.
pltでよく使われるパラメータの意味:lsは描画する線のタイプを表し、lw(linewidth)は描画線の幅を表し、labelという線の名前、colorまたはcは色を表し、weightはフォント属性を表し、alphaは色の濃度を表し、loclabelラベルの位置を表す.簡単な例は次のとおりです.
import matplotlib.pyplot as plt
import numpy as np
#1 0-10 100
x=np.linspace(0,10,100)
y=np.random.rand(100)
y1=np.sin(x)
#
plt.plot(x,y1,ls='-',lw=2,label='plot figure')
#
plt.scatter(x,y,label='scatter figure')
# '-' ,':'
plt.grid(linestyle=":",color="r")
# , , xy ,xytext
plt.annotate(u"zhushi",xy=(np.pi/4,1.0),xytext=((np.pi/2)+1.0,.8),weight='bold',color='b',arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color='b'))
# , , x,y
plt.text(3.10,0.09,'y=sin(x)',weight='bold',color='b')
#
plt.axhspan(ymin=0.0,ymax=0.5,facecolor='y',alpha=0.3)
plt.axvspan(xmin=4.0,xmax=6.0,facecolor='y',alpha=0.3)
#
plt.axhline(y=0.0,c='r',ls='--',lw=2)
plt.axvline(x=4.0,c='b',ls='-',lw=2)
#
plt.title('y=sin(x)')
# label upper right,upper left,lower left,lower right,right,center left,center right,lower center,upper center,center
plt.legend(loc='lower right')
plt.legend(loc='upper left')
# xlabel ylabel
plt.xlim(0,10)
plt.ylim(-1,1)
#
plt.xlabel("x")
plt.ylabel("y")
#
plt.show()
pltペイントの関連操作に直接中国語を入力すると認識できなくなり、解決方法は以下の通りです.import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["FangSong"]#
mpl.rcParams["axes.unicode_minus"]=False#
柱図の描画:import matplotlib.pyplot as plt
import numpy as np
x=[1,2,3,4,5,6,7,8]
y=[3,1,9,5,8,2,9,10]
#
plt.bar(x,y,align='center',color='b',tick_label=['a','b','c','d','e','f','g','h'],hatch='/',alpha=0.5)
# 90
plt.barh(x,y,align='center',color='b',tick_label=['a','b','c','d','e','f','g','h'],hatch='/',alpha=0.5)
plt.xlabel(" ")
plt.ylabel(" ")
plt.show()
柱状図に基づいて柱状図の堆積とブロック化を実現する:異なる方向の重畳ブロックは重畳ブロックの方向と距離に注意しなければならない.#y
plt.bar(x,y,align="center",color="b",tick_label=['A','B','C','D'],label="1")
plt.bar(x,y1,align="center",bottom=y,color="r",label="2")
#
xwidth=0.3
plt.bar(x,y,xwidth,color='c',align='center',label='1',alpha=0.5)
plt.bar(x+xwidth,y1,xwidth,color='b',align='center',label='2',alpha=0.5)
ヒストグラムの描画:import matplotlib.pyplot as plt
import numpy as np
box=np.random.randint(0,10,100)
plt.hist(box,bins=range(0,11,1),color='g',edgecolor='black',histtype='bar',rwidth=1,alpha=0.5)
plt.xlabel(" ")
plt.ylabel(" ")
plt.show()
円グラフの描画:import matplotlib.pyplot as plt
kinds="A","B","C","D"
colors=["#188eb6","#377eb8","#4daf4a","#984ea3"]
#
soldNums=[0.35,0.1,0.3,0.25]
plt.pie(soldNums,labels=kinds,autopct="%3.1f%%",startangle=0,colors=colors)
plt.show()
極線図の描画:import matplotlib.pyplot as plt
import numpy as np
theta=np.linspace(0.0,2*np.pi,12,endpoint=False)
r=30*np.random.rand(12)
plt.polar(theta,r,color="b",lw=2,marker="*",mfc="b",ms=10)
plt.show()
折れ線グラフの描画:import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0.5,2*np.pi,20)
y=np.random.randn(20)
plt.stem(x,y,linefmt=":",markerfmt="c",basefmt="-")
plt.show()
エラーマップの描画:import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0.1,0.6,6)
y=np.exp(x)
plt.errorbar(x,y,fmt="bo:",xerr=0.02,yerr=0.2)
plt.show()
階段図の描画:import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(1,10,10)
y=np.sin(x)
plt.step(x,y,color="r",lw=2,where='pre')#where=post,pre,mid
plt.xticks(range(1,11,1))
plt.show()
グラフィック描画:import matplotlib.pyplot as plt
import numpy as np
score1=np.random.randint(0,100,10)
score2=np.random.randint(0,100,10)
x=[score1,score2]
colors=['#8dd3c7','#bebada']
labels=['A','B']
bins=range(0,101,10)
#histtype , histtype={‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}
#stacked=True , False
plt.hist(x,bins=bins,color=colors,histtype='bar',rwidth=10,stacked=True,label=labels)
plt.legend(loc="upper left")
plt.show()
キャンバスを複数回参照すると、画像が重畳するplt.clf()をクリアするか、使用するたびに作成し、使い終わってからpltを閉じる.figure(),plt.close().