Pythonの事例|Matplotlibライブラリで実装したデータ解析

写真

データ表示はデータ分析とマイニングにおける重要なリンクであり、データ固有の法則をグラフィックの形式で直感的かつ明確に表示できます。

この記事で使用するデータは、前回の実装後のデータテーブルを採用しており、newbj_lianJia.csv ファイルにデータが格納されており、具体的なコードは以下のとおりです。

import pandas as pd  #导入库
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 调整字体设置
plt.rcParams 'axes.unicode minus False
df=pd.read csv('newbj lianJia.csv',encoding='gbk') # 读取文件

このペーパーの主なタスクは、次の側面を含む各属性のデータ分布を表示および分析することです。

(1) 各フロアの平均賃料分布を棒グラフで描きます。

(2) 各都市エリアの住宅の平均家賃を折れ線グラフで描きます。

(3) 平均家賃上位 20 位の市街住宅数のヒストグラムと平均家賃分布の折れ線グラフを作成します。

(4) 上位 10 の住宅タイプの割合を描画します。

01.事例の実現

(1) 各フロアの平均賃料分布を棒グラフで描きます。コードは以下のように表示されます。

# 按照楼层分组
g=df.groupby('floor')
# 计算各楼层的房屋数量
df floor=g.count()['ID
floor=df floor.index.tolist()
# 计算各楼层的平均租金
df floor rent=g.mean() 'rent;
rent=df floor rent.values.tolist ()
rent= round(x,2) for x in rent
# 绘制条形图
plt.barh(y=floor,width=rent)
plt.ylabel('楼层')
plt.xlabel('租金/元)
plt.title('各楼层平均租金条形图',fontproperties='stkaiti',fontsize=14)
plt.tight layout(pad=2)
plt.show()

実行結果を図 1 に示します。

写真

■図1 各階の平均賃料の棒グラフ

家賃に大きな影響を与えるのは、地下室、低層階、中層階、高層階の順であることがわかります。

(2) 各都市エリアの住宅の平均家賃を折れ線グラフで描きます。

コードは以下のように表示されます。

# 按照城区进行分组,统计租金的平均值
dfl=df.groupby('district')['rent'].mean()
# 获取城区名
region=df1.index.tolist()
# 获取各城区的平均租金
rent=_round(x,2) for x in dfl.values.tolist()
# 绘制各城区房屋租金折线图
plt.figure(figsize=(12,6))
plt.plot(region,rent,c='r',marker='o',linestyle='--')
for x,y in zip(region,rent):
plt.text(x,Y,' .0f' y,ha='center',fontsize=11)
# 设置坐标轴标签文本
plt.ylabel('租金/元,fontproperties='simhei')
plt.xlabel('城区',fontproperties='simhei')
#设置图形标题
plt.title(各城区房屋平均租金折线图,fontproperties='stkaiti'
fontsize=14)
# 设置横坐标字体倾斜角度
plt.xticks(rotation=15)# 显示图形
plt.show()

 実行結果を図 1 に示します。

写真

■図1 各都市圏の住宅の平均家賃の折れ線グラフ

都市部が家賃に大きく影響していることが分かり、平均家賃は朝陽区が最も高く13,976元、最も低いのは密雲区の3,480元となっている。もちろん、これは都市部の地理的位置に直接関係しており、都心に近いほど家賃は高く、都心から離れるほど家賃は安くなります。

(3) 平均家賃上位 20 位の市街住宅数のヒストグラムと平均家賃分布の折れ線グラフを作成します。

コードは以下のように表示されます。

# 按照街道进行分组
g=df.groupby('street')
# 对街道按照平均租金进行升序排序,并取前 20 名
df region=g.mean() 'rent
top_street rentdf region.sort values(axis=0,ascending=False)[:20]
# 获取排名前 20 名的街道名称
region=top street rent .index.tolist ()
# 统计各个街道出租房屋数量
count=[g.count()['ID'][s] for s in region]
# 获取排名前 20 名的街道的平均租金
rent= round(x,2) for x in top street rent.values.tolist()#绘图
fig,axs=plt.subplots(1,1,figsize=(12,6))axs.bar(region,height=count)
plt.ylabel("数量")
plt.xlabel("街道")
axs1=axs.twinx()
axsl.plot(region,rent,c='r',marker='o',linestyle='--')for x,y in zip(region,count):
axs.text(x,y,.Of' y, ha='center',fontsize=12)
for x,y in zip(region,rent):axs1.text(x,y,.Of' yha='center',fontsize=12)axs.set title(租金前 20 名的街道出租房屋数量及其租金分布图fontsize= 14)
plt.ylabel("租金/元")
fig.autofmt xdate(rotation=15)
plt.tight layout(pad=1)
plt.show()

 実行結果を図 2 に示します。

写真

■図2 上位20通りの賃貸住宅数と家賃分布

最も家賃が高い街は、関源、安定門、玄武門、西山、白石橋であることがわかります。家賃が最も高い関源を除いて、他の街路の家賃はそれほど変わらないため、街路の属性と家賃の間に強い相関関係はありません。

(4) 上位 10 位までの住宅タイプの割合を描画すると、コードは次のようになります。

# 根据房屋户型分组
dfl=df .groupby('model')
#计算房屋户型数量,排序并取前 10 名
df model=dfl.count()['ID'].sort values(axis=0,ascending=False)[:10]
model=df model.index.tolist ()
# 计算房屋数量
count=df model.values.tolist()#绘制房屋户型占比饼图
plt.pie(count,labels=model,autopct='%1.2f%')# 设置图形标题
plt.title('房屋户型前 10 名的占比情况,fontproperties='stkaiti'fontsize=14)
plt.show()

 実行結果を図 3 に示します。

写真

ほとんどの家には、ベッドルーム 2 室、リビングルーム 1 室とバスルーム 1 室、ベッドルーム 1 室、リビングルーム 1 室とバスルーム 1 室、ベッドルーム 3 室、リビングルーム 1 室とバスルーム 1 室、ベッドルーム 3 室とリビングルーム 2 室とバスルーム 2 室があることがわかります。

 

おすすめ

転載: blog.csdn.net/qq_41640218/article/details/132487714