Matplotlib--図(スキャッタグラム、ヒストグラム、等高線図、3D図)

1.散布塗装

まず、第1導入略記matplotlib.pyplot PLT、再導入numpyのモジュールは、いくつかのランダムなデータを生成します。なお、100は、データセット、データセットの画像のような標準的な正規分布(平均0、分散1)の二次元データセットを生成しました。各点の色値がTで表されます。

import matplotlib.pyplot as plt
import numpy as np

X = np.random.normal(0,1,100)   #高斯分布(均值为0,方差为1,100个样本)
Y = np.random.normal(0,1,100)   
T = np.arctan2(Y,X)    #反正切函数,返回的是弧度

plt.scatter(X,Y,s=50,c=T,alpha=.8)   #alpha为透明度

plt.xlim(-3,3)
plt.ylim(-3,3)
plt.xticks(())     #参数为空代表隐藏x轴坐标
plt.yticks(())
plt.show()

位置、大きさ= 50 X及びY入力は、色はT、デフォルト値を使用してカラーマップであり、透明度は80%のアルファです。X軸の表示範囲(3,3)を配置し、X座標軸、Y軸共感を非表示にXTICK()関数で洗浄しました。示すように、結果:
ここに画像を挿入説明

棒グラフを描く2

データ10を生成し、Xは0から9までの整数であり、Yは、対応する均一に分布したランダムデータです。この関数は、plt.barを使用して、パラメータXとY

ここでは、色と値を最適化します。色にEdgeColorを設けのFaceColor本体は白に境界線の色を設定します

長手底VA =「ボトム」と整列し、次の我々は、小数点以下2桁%.2fと、plt.text関数値の上方にそれぞれ列を追加する横HA =「中央」を中心:

import matplotlib.pyplot as plt
import numpy as np

X = np.arange(10)
Y = (1-X/float(10))*np.random.uniform(0.5,1.0,10)   #从均匀分布中随机采样(上界、下界、样本输出数目)

plt.bar(X,Y,facecolor='pink',edgecolor='white')

for x,y in zip(X,Y):
    plt.text(x+0.05,y+0.02,'%.2f' % y,ha='center',va='bottom')
    
plt.xlim(-.5,10)
plt.ylim(0,1.0)
plt.xticks(())
plt.yticks(())
plt.show()

ここに画像を挿入説明

図3の輪郭

データ三次元点(x、y)と対応する高さ値、100点の合計のセット。生成された関数f(x、y)を用いて、高さの値。X、Yは、区間[3,3]内にあるが一様に100の値を分散し、各関数meshgrid各xおよび二次元平面内の各Y、織布グリッドに関連付けされています。

次に、塗りつぶしの色。リストに追加された色を用いてPlt.contourf機能、位置パラメータは、X、Y、F(X、Y)。透明0.75、およびF(X、Y)に対応する色を見つけるために、暖かいカラーマップに値セットに対応します。

次に、輪郭描画を行います。機能をスクライブ使用plt.contour。位置パラメータ:X、Y、F(X、Y)。黒色は、0.5から、線幅が選択されます。図8は、輪郭線の強度を表し、ここでは、10個の部分に分割されます。それが0であれば、画像は2つに分割されています。

最後にラベル、オンライン塗装内部インラインコントロールラベルかどうか、フォントサイズ10に参加します。そして、座標軸を隠します:

import matplotlib.pyplot as plt
import numpy as np

def f(x,y):
    return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 -y**2)
    
x = np.linspace(-3,3,100)
y = np.linspace(-3,3,100)
X,Y = np.meshgrid(x,y)

plt.contourf(X,Y,f(X,Y),6,alpha=.75,cmap=plt.cm.cool)  #添加颜色进去
C = plt.contour(X,Y,f(X,Y),6,colors='black',linewidth=.5) #画轮廓

plt.clabel(C, inline=True, fontsize=10)
plt.xticks(())
plt.yticks(())
plt.show()

ここに画像を挿入説明

4.image图

import matplotlib.pyplot as plt
import numpy as np

a = np.arange(9).reshape((3,3))   #构造3x3矩阵
plt.imshow(a, interpolation='nearest',cmap='bone',origin='upper') #升序打印不同值的颜色
plt.colorbar(shrink=.95)  #颜色棒缩放为原来的95%

plt.xticks(())    #隐藏x坐标轴
plt.yticks(())    #隐藏y坐标轴
plt.show()

ここに画像を挿入説明

5.図3Dビデオ

matplotlibの導入に加えて、だけでなく、3Dプロット、すなわち軸立体3Dディスプレイ軸を行う追加の第1のモジュールを追加します。

次は、XとYの値を供給し、XおよびYは、格子状に織られています。我々は次の関数を用いて計算点に対応する各高さ値(X、Y)。

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D     #导入3D显示模块

fig = plt.figure()   #定义一个图像窗口
ax = Axes3D(fig)   #在窗口上添加3D坐标轴
X = np.arange(-3,3,0.1)
Y = np.arange(-3,3,0.1)
X,Y = np.meshgrid(X,Y)    #将 X 和 Y 编织成栅格
R = np.sqrt(X**2 + Y**2)    
Z = np.sin(R)    #z轴

ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))  #横纵坐标跨度为1
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap=plt.get_cmap('rainbow'))   #投影到z=-2处
ax.set_zlim(-2,2)

plt.show()

ここに画像を挿入説明

彼は199元の記事を発表 ウォンの賞賛566 ビュー20000 +

おすすめ

転載: blog.csdn.net/weixin_37763870/article/details/105344164