python - アプリケーションplt.bar、plt.hist、plt.plot、plt.boxplot、plt.scatter改善matplotlibの

ヒストグラムplt.bar

同じヒストグラム表示plt.pivot()+ plt.bar(底=)積層

別の四半期については、再設定されたインデックスの列と列見出し(列))の異なる製品の品質を示し、最初の使用データのデータ内容は、(pd.pivot_tableによってスクリーニング評価し、その後、バーでデータを表示

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data=pd.read_csv(r'my_csv_date.csv',encoding='gbk')
print(data)
#解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.figure(figsize=(6.4,4.8))#设置图片背景的参数
print('下面是整理后的数据:==========')
#通过pivot_table函数重新提取数据两列作为(data)索引列和横向的列名(columns),另外的vlues对应的是数列,注意的是,尽量让索引是和数字有关的序列,可自动排序
over_view=pd.pivot_table(data=data,index='Q',columns='GOODS',values='QUA',aggfunc=np.sum)
print(over_view)
#使用tick_label对x轴的标签重新赋值
plt.bar(x= over_view.index.values,height=over_view.,color='green',tick_label=['第一季度','第二季度','第三季度','第四季度'] )
plt.bar(x= over_view.index.values,height=over_view.,bottom=over_view.,color='red')
plt.bar(x= over_view.index.values,height=over_view.,bottom=over_view.+over_view.,color='orange')
plt.xticks(rotation=45)	#x轴上的标签旋转45度
plt.ylabel('质量分数',fontsize=20,labelpad=20)
plt.show()

ここに画像を挿入説明
そして、結果の上で動作するプログラムによって、以下の点に注意を引く
1、文字の数値ソートを利用するために、インデックス、それが自動的にソートすることができ、最終的にに使用plt.barする必要があります(tick_label = [])、横軸ラベルの文字を変更します
2、ヒストグラムを作成する際に、使用されるデータである自身後処理変数およびカラム・インデックス、及びデータ処理が一般的に用いられるnp.sum()、レコードタイプ数です。
3は、グラフィックス表示するためにブロックされることはありませんが、あなたはplt.bar(下=)する必要があり、たいと思うの下にデータを配置する場合は、値が渡されたとして使用されていない、それぞれの時間が最もローエンドのグラフィックスを横軸に基づいています数え、完全にそこにブロックされた場合、グラフィック無意味
3つの製品を得点上記の例では、各四半期のサービスの品質、。ましょう四半期および項目名(ABC)データ表示として水平方向と垂直方向のパラメータ、サービス品質スコアなど

同じヒストグラム表示plt.crosstab(nomalize =)+を積層plt.bar(ボトム=)

スタック表示、およびデータ選択のユニット、それがあることは明らかであるデータの割合量の各段階 ;
及び、その後に使用されるバーのグラフィック描画label属性の値を設定し、それ以外の場合は、plt.legendの使用に問題があるでしょう
PLTを.legend()表示位置により、不適切であるbbox_to_anchor =(座標)でplt.legend()ことが、パターンの右上隅が(1,1)、(1.01,0.8)を設けてもよいコンテンツ画像に注釈を外部の

#前面和上个程序一样
over_view=pd.crosstab(data.Q,data.GOODS,normalize='index', values=data.QUA,aggfunc=np.sum,)
print(over_view)
plt.bar(x= over_view.index.values,height=over_view.,color='green',label='甲',tick_label=['第一','第二','第三','第四'] )
plt.bar(x= over_view.index.values,height=over_view.,bottom=over_view.,label='乙',color='red')
plt.bar(x= over_view.index.values,height=over_view.,label='丙',bottom=over_view.+over_view.,color='orange')
plt.xticks(rotation=45)#旋转横坐标标签
plt.ylabel('质量分数',fontsize=20,labelpad=20)
plt.legend(bbox_to_anchor=(1.01,0.8))
plt.show()

ここに画像を挿入説明
プログラムの分析:このプログラムと)(pd.crosstabを介してデータグラフィックスを描画の各行が所有する(すなわち、それぞれの行のインデックス)

ヒストグラムplt.hist

正規分布関数は、次の関数は、通常の出力周波数の対応する計算値を返します

def zhengtai_func(x,miu,sigma):
    zhen_y=np.exp(-(x-miu)**2/(2*(sigma**2)))/(sigma*np.sqrt(2*np.pi))
    return zhen_y

通常の計算式。
ここに画像を挿入説明

data=pd.read_csv(r'my_csv_date.csv',encoding='gbk')
print(data)
#解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

#删除数据中缺失项,计算数据的均值,标准差,和正态分布频率点
data.dropna(subset=['人数'],inplace=True)
print(data)
#x_mean=np.mean(data.人数) #与下一行数据功能相同
x_mean=data.人数.mean()
x_std=np.std(data.人数)
x=np.arange(data.人数.min(),data.人数.max(),0.1)
y=zhengtai_func(x,x_mean,x_std)

#显示直方图,核密度图,设置注释标签label                      
plt.hist(x=data.人数,bins=5,color='lightblue',label='年龄频率',\
         edgecolor='orange',density=True)
plt.plot(x,y,color='red',linewidth=3,label='正态分布线')
data.人数.plot(kind='kde',color="black",xlim=[0,10],label='核密度图')
plt.xlabel('不同年龄',fontsize=15,labelpad=20)
plt.title('年龄频率分布图',fontsize=25,pad=25)
plt.legend(loc='best')
plt.show()

ここに画像を挿入説明
パターン解析プログラム:
正規確率計算を定義する1、参照それぞれ番号、データX、平均x_mean、標準偏差x_stdは、計算された確率値を返し
2、及び、データを読み出し、data.dropna ()削除欠落データライン、平均値、標準偏差計算されたデータ、xはライン(平均および標準偏差データが正規確率分布データを決定するために使用される)として示される正規方程式により、複数の値をとります。
図3に示すように、ヒストグラム化plt.hist()、法線plt.plot(x、y)は、核密度分布ラインdata.plot(種類= 'KDE')、
4、正規分布および核密度分布の差:核の密度分布とデータのすべての相の間に大きな関係が、正規分布は、平均値の平均値と標準偏差を決定した後に決定されます

図タンクplt.boxplot()

参考:箱の知識知識のパラメータ
ここに画像を挿入説明
絵

plt.boxplot(X、ノッチ=なし、SYM =なし、ヴェール=なし、WHIS =なし、体位=なし、WIDTHS =なし、patch_artist =なし、ブートストラップに=なし、usermedians =なし、conf_intervals =なし、meanlineは、なし=んshowmeans =なし、showcaps =なし、showBox =なし、showfliers =なし、boxprops =なし、ラベル=なし、flierprops =なし、medianprops =なし、meanprops =なし、capprops =なし、whiskerprops =なし、manage_xticks = Trueの場合、オートレンジ=偽、ZORDER =なし、HOLD =なし、データ=なし)
** X:指定した描画データ**箱ひげ図、
ノッチ:凹部のショーボックスプロット、デフォルトの非ノッチの形でかどうか、
SYM:指定異常形状点、デフォルトは+記号である
ヴェール:ボックスプロットは、垂直にデフォルト表示に垂直に配置されたか否か、
whis:指定垂直距離が上下四分、1.5倍デフォルト四分位を位置決めするのに必要な、
体位:箱ひげ図は、場所を指定し、デフォルト[0,1,2 ...];
WIDTHS:指定箱ひげ幅は、デフォルト値は0.5である;
** patch_artist:**ボックスの塗りつぶしの色かどうか;
** meanline:**平均線の形式は、デフォルトのドットで表されるかどうかを示す;
** showmeans:**平均デフォルトかどうか表示されていない。
showcapsを:最初の2行かどうかを、端子ボックスプロットは、デフォルトで表示;
** showBox:**箱ひげ図の表示ボックス、デフォルトの表示されています。
showfliers:異常値、デフォルトの表示を表示するかどうか。
* * boxprops:そのような境界線の色、塗りつぶしの色、など**セットボックス属性、;
ラベル:凡例の役割と同様のボックスプロットとしてラベルを追加;
filerprops:プロパティ値を設定し、このような形状のような異常箇所異常である、サイズ、充填など;
** medianprops:そのような線種、厚み等**中央値設定特性、;
** meanprops:そのようなポイントサイズ、色、等**平均設定特性、;
** capprops:**セットトップボックスプロットとエンドライン ;などの色、太さ、などの特性、
whiskerprops:色、太さ、ケーブルの種類などの必要なプロパティを設定します。

data=pd.read_csv(r'my_csv_date.csv',encoding='gbk')
print(data)
#解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.boxplot(x=data.人数,patch_artist=True,showmeans=True,meanline=True, boxprops={'facecolor':'green','color':'red'},\
            flierprops={'marker':'o','markerfacecolor':'red','markersize':20},\
           medianprops={'linestyle':'--','color':'orange'},\
           meanprops={'linestyle':'-','color':'blue'})
plt.xlabel('不同标号的人数',fontsize=15,labelpad=20)
plt.title('人数箱图',fontsize=25,pad=25)
# plt.legend(loc='best')
plt.show()

ここに画像を挿入説明
-1.5 25%の画分(75%-25%の分位点:グラフィカル描写を解釈し、図ボックスは明らかに異常値、表示フレームボックス25%-75%分位オフラインを表示することができオンラインビット数):25%+1.5画分(75%-25%分位数分位数)、

散布plt.scatter

ありがとうございアイリスデータ
、虹彩データの公式ウェブサイトを、ダウンロードしたり、ゆっくりと開く
異なる表示属性に物事のそれぞれについて、ループを使用して、2つの連続変数間の関係を示すために、データの精度の名前をメモ

data=pd.read_csv(r'iris.csv',encoding='gbk')

# print(data)
#解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

#设置不同物种的颜色形状标记
species=['virginica','setosa','versicolor']
colors=['red','blue','orange']
marker=['o','s','x']

#给每个物种不同标记
for i in range(0,3):
    plt.scatter(x=data.Width[data.Species==species[i]],
                y=data.Length[data.Species==species[i]],
                color=colors[i],marker=marker[i],label=species[i])
plt.legend(loc='best')
plt.ylabel('花瓣长度',fontsize=15,labelpad=10)
plt.xlabel('花瓣宽度',fontsize=15,labelpad=10)
plt.title('三种鸢尾花数据',fontsize=20,pad=20)

plt.show()

ここに画像を挿入説明

折れ線グラフのplt.plot()

トレンドデータ表示

#设置图像大小和读取数据
fig=plt.figure(figsize=(8,7))
data=pd.read_csv(r'my_csv_date.csv',encoding='gbk')
print(data)

#解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

#设置第1列作为x的值,第3,4,5列作为对应的y值
plt.plot(data.iloc[:,0],data.iloc[:,2],'bs--',
        data.iloc[:,0],data.iloc[:,3],'ro--',
        data.iloc[:,0],data.iloc[:,4],'gh--',)

#修改折线图的横坐标名称,第一个参数是原始名称,第二个参数是新的名称
plt.xticks(range(0,12,1),data.iloc[range(0,12,1),1],rotation=45,fontsize=10)
plt.legend(loc='best')
plt.ylabel('数据值',fontsize=15,labelpad=10)
plt.xlabel('顺序',fontsize=15,labelpad=10)
plt.title('数据变化',fontsize=20,pad=20)

plt.show()

ここに画像を挿入説明
以下に、画像の中心の説明、(プログラム及び画像は対応していない)、正常ピクチャパラメータであります

plt.legend(loc='best',frameon=False,ncol=1)
plt.legend(loc='best',frameon=True,ncol=1)
plt.legend(loc='best',frameon=False,ncol=3)

ここに画像を挿入説明

公開された70元の記事 ウォンの賞賛1 ビュー2414

おすすめ

転載: blog.csdn.net/weixin_43794311/article/details/105102003