日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用python做频数分析_如何用Python制作频率(频数)分布表(图)?

發布時間:2023/12/31 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用python做频数分析_如何用Python制作频率(频数)分布表(图)? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.數據預處理

導入包

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

導入數據(數據資源分享鏈接見文末)

data = pd.read_excel(r'數據.xlsx')

在Console查看導入的數據

data

因為原excel文件里還有其他信息,所以數據需要處理

處理數據

在Console查看data的數據類型:

type(data)

取Dataframe類型的數據的第一列:

data1=data.iloc[:,0]

統計數據個數:

發現少1個數(總共應該有50個數)

原來是第一個數4.1被當成了DataFrame的索引:

補充缺失的值4.1

先在Console查看data1的數據類型

type(data1)

補充Series的缺失值:

n=pd.Series([4.1])

data2=data1.append(n)

2.制作頻數分布表

將data2分為5個區間(0, 3],(3, 6],(6, 9],(9,12],(12,15]:

a=pd.cut(data2,[0,3,6,9,12,15], labels=[u"(0,3]",u"(3,6]",u"(6,9]",u"(9,12]",u"(12,15]"])

在Console查看a:

......

計算頻數

b=a.value_counts()

在Console查看b:

按照b的索引升序排序

b2=b.sort_index()頻數分布表

3.繪制頻數分布圖

將Series轉換為DataFrame,便于使用Seaborn繪圖:

c={'section':b2.index,'frequency':b2.values}

e=pd.DataFrame(c)

matplotlib字體的默認設置中并沒有中文字體,為避免中文字符亂碼,添加中文字體:

plt.rcParams['font.sans-serif']=['SimHei']

使用Seaborn的barplot繪制條形圖:

ax = plt.figure(figsize=(10, 5)).add_subplot(111)

sns.barplot(x="section",y="frequency",data=e,palette="Set3") #palette設置顏色

設置y軸刻度范圍:

ax.set_ylim([0, 30])

設置坐標軸文字:

ax.set_xlabel('區間', fontsize=20)

ax.set_ylabel('頻數', fontsize=20)

設置標題:

ax.set_title('頻數分布圖', size=40)

設置坐標軸刻度字體大小:

plt.xticks(fontsize=30)

plt.yticks(fontsize=30)

顯示每個柱體的值:

for x, y in zip(range(5), e.frequency):

ax.text(x, y, '%d'%y, ha='center', va='bottom', fontsize=30, color='grey')

保存圖片:

plt.savefig('Python繪制的頻數分布圖.jpg',dpi=500,bbox_inches = 'tight')

#bbox_inches = 'tight'使保存的圖片顯示完整Python繪制的頻數分布圖

獲取數據和源代碼:

提取碼:n996

總結

以上是生活随笔為你收集整理的用python做频数分析_如何用Python制作频率(频数)分布表(图)?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。