本文主要介紹兩個內容:
- 如何使用記事本生成包含某一數據集的CSV文件;
- 如何使用Python繪制給定數據集的直方圖和正態分布曲線。
1. 使用記事本創建CSV文件
① 新建一個文本文件,打開后輸入數據,格式如下:
name,age,address Mike,20,shanghai
這里需要注意的是:關鍵字之間使用英文逗號隔開;第一行為引用字段,第二行為對應值。
② 將文本文件另存為CSV文件,如下:
依次選擇【文件】→【另存為】→【文件名:xxx.csv】→【保存類型:所有文件】→【編碼:utf-8】→【保存】,圖示如下:
③ CSV文件中的數據為100個表示長度的數值,如下:
2539 2536 2534 2542 2545 2538 2539 2542 2547 2535 2541 2543 2544 2548 2545 2543 2546 2540 2551 2545 2540 2539 2541 2536 2538 2531 2556 2543 2540 2538 2537 2544 2533 2546 2540 2549 2534 2542 2550 2537 2535 2532 2545 2540 2527 2543 2554 2539 2545 2543 2540 2543 2544 2541 2553 2537 2538 2524 2544 2540 2536 2542 2539 2546 2538 2535 2531 2534 2540 2536 2541 2532 2538 2542 2540 2533 2537 2541 2549 2535 2547 2534 2530 2539 2536 2546 2529 2540 2537 2533 2540 2535 2541 2537 2547 2539 2542 2547 2538 2539
2. 繪制數據集的直方圖和正態分布曲線
1 # 2 # 本文以某一批產品的長度為數據集 3 # 在此數據集的基礎上繪制直方圖和正態分布曲線 4 # 5 6 import pandas as pd # pandas是一個強大的分析結構化數據的工具集 7 import numpy as np # numpy是Python中科學計算的核心庫 8 import matplotlib.pyplot as plt # matplotlib數據可視化神器 9 10 # 正態分布的概率密度函數 11 # x 數據集中的某一具體測量值 12 # mu 數據集的平均值,反映測量值分布的集中趨勢 13 # sigma 數據集的標准差,反映測量值分布的分散程度 14 def normfun(x, mu, sigma): 15 pdf = np.exp(-((x - mu) ** 2) / (2 * sigma ** 2)) / (sigma * np.sqrt(2 * np.pi)) 16 return pdf 17 18 if __name__ == '__main__': 19 20 data = pd.read_csv('length.csv') # 載入數據文件 21 length = data['length'] # 獲得長度數據集 22 mean = length.mean() # 獲得數據集的平均值 23 std = length.std() # 獲得數據集的標准差 24 25 # 設定X軸:前兩個數字是X軸的起止范圍,第三個數字表示步長 26 # 步長設定得越小,畫出來的正態分布曲線越平滑 27 x = np.arange(2524, 2556, 0.1) 28 # 設定Y軸,載入剛才定義的正態分布函數 29 y = normfun(x, mean, std) 30 # 繪制數據集的正態分布曲線 31 plt.plot(x, y) 32 33 # 繪制數據集的直方圖 34 plt.hist(length, bins=12, rwidth=0.9, density=True) 35 plt.title('Length distribution') 36 plt.xlabel('Length') 37 plt.ylabel('Probability') 38 39 # 輸出正態分布曲線和直方圖 40 plt.show()
程序執行結果如下: