Python數據可視化編程通過Matplotlib創(chuàng)建散點圖代碼示例
Matplotlib簡述:
Matplotlib是一個用于創(chuàng)建出高質量圖表的桌面繪圖包(主要是2D方面)。該項目是由JohnHunter于2002年啟動的,其目的是為Python構建一個MATLAB式的繪圖接口。如果結合PythonIDE使用比如PyCharm,matplotlib還具有諸如縮放和平移等交互功能。它不僅支持各種操作系統(tǒng)上許多不同的GUI后端,而且還能將圖片導出為各種常見的矢量(vector)和光柵(raster)圖:PDF、SVG、JPG、PNG、BMP、GIF等。此外,matplotlib還有許多插件工具集,如用于3D圖形的mplot3d以及用于地圖和投影的basemap。
準備數據:從文本文件中解析數據
本文使用的數據主要包含以下三種特征:每年獲得的飛行??屠锍虜?,玩視頻游戲所耗時間百分比,每周消費的冰淇淋公升數。其中分類結果作為文件的第四列,并且只有3、2、1三種分類值。
飛行里程數 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...... | |
|
|
上述特征數據的格式經過file2matrix函數解析處理之后,可輸出為矩陣和類標簽向量。
將文本記錄轉換為Numpy的解析程序:
使用file2matrix讀取文件數據,必須確保待解析文件存儲在當前的工作目錄中。導入數據之后,簡單檢查一下數據格式:
分析數據:使用Matplotlib創(chuàng)建散點圖
編輯kNN.py文件,引入matplotlib,調用matplotlib的scatter繪制散點圖。
import matplotlib import matplotlib.pyplot as plt def file2matrix(filename): ...... return returnMat,classLabelVector datingDataMat,datingLabels = file2matrix('datingTestSet2.txt') fig = plt.figure() ax = fig.add_subpot(111) ax.scatter(datingDataMat[:,1],datingDataMat[:,2]) plt.show()
散點圖使用datingDataMat矩陣的第二、第三列數據,分別表示特征值“玩視頻游戲所耗時間百分比”和“每周消費的冰淇淋公升數”。
上圖由于沒有使用樣本分類的特征值,很難看到任何有用的數據模式信息。為了更好理解數據信息,Matplotlib庫提供的scatter函數支持個性化標記散點圖上的點。調用scatter函數使用下列參數:
ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels)) plt.show()
上圖利用datingLabels存儲的類標簽屬性,在散點圖上繪制了色彩不等、尺寸不同的點。因而基本上可以從圖中看到數據點所屬三個樣本分類的區(qū)域輪廓。為了得到更好的效果,采用datingDataMat矩陣的屬性列1和2展示數據,并以紅色的'*'表示類標簽1、藍色的'o'表示表示類標簽2、綠色的'+'表示類標簽3,修改參數如下:
import numpy as np ...... datingLabels = array(datingLabels) idx_1 = np.where(datingLabels==1) p1 = ax.scatter(datingDataMat[idx_1,0],datingDataMat[idx_1:,1],market = '*',color = 'r',label='1',s=20 idx_2 = np.where(datingLabels==2) p2 = ax.scatter(datingDataMat[idx_2,0],datingDataMat[idx_2:,1],market = 'o',color ='b',label='1',s=10 idx_3 = np.where(datingLabels==3) p3 = ax.scatter(datingDataMat[idx_3,0],datingDataMat[idx_3:,1],market = '+',color ='g',label='1',s=30 plt.legend(loc = 'upper right') plt.show()
總結
本文簡單介紹了Matplotlib,并以實例分析了如何使用Matplotlib庫圖形化展示數據,最后通過修改matplotlib的scatter函數參數使得散點圖的分類區(qū)域更加清晰。
希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- 通過python的matplotlib包將Tensorflow數據進行可視化的方法
- Python數據可視化教程之Matplotlib實現各種圖表實例
- python Matplotlib數據可視化(1):簡單入門
- python Matplotlib數據可視化(2):詳解三大容器對象與常用設置
- Python數據可視化之用Matplotlib繪制常用圖形
- python數據可視化之matplotlib.pyplot基礎以及折線圖
- Python 數據可視化之Matplotlib詳解
- Python利用matplotlib模塊數據可視化繪制3D圖
- Python數據可視化之使用matplotlib繪制簡單圖表
- Python數據分析應用之Matplotlib數據可視化詳情
相關文章
Python中的裝飾器鏈(decorator chain)詳解
在Python中,裝飾器是一種高級功能,它允許你在不修改函數或類代碼的情況下,為它們添加額外的功能,裝飾器通常用于日志記錄、性能測量、權限檢查等場景,當多個裝飾器應用于同一個函數或類時,形成裝飾器鏈,這篇文章主要介紹了Python中的裝飾器鏈詳解,需要的朋友可以參考下2024-06-06python數據挖掘Apriori算法實現關聯(lián)分析
這篇文章主要為大家介紹了python數據挖掘Apriori算法實現關聯(lián)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05