A. python數據分析:可視化
本文是《數據蛙三個月強化課》的第二篇總結教程,如果想要了解 數據蛙社群 ,可以閱讀 給DataFrog社群同學的學習建議 。溫馨提示:如果您已經熟悉python可視化內容,大可不必再看這篇文章,或是之挑選部分文章
對於我們數據分析師來說,不僅要自己明白數據背後的含義,而且還要給老闆更直觀的展示數據的意義。所以,對於這項不可缺少的技能,讓我們來一起學習下吧。
畫圖之前,我們先導入包和生成數據集
我們先看下所用的數據集
折線圖是我們觀察趨勢常用的圖形,可以看出數據隨著某個變數的變化趨勢,默認情況下參數 kind="line" 表示圖的類型為折線圖。
對於分類數據這種離散數據,需要查看數據是如何在各個類別之間分布的,這時候就可以使用柱狀圖。我們為每個類別畫出一個柱子。此時,可以將參數 kind 設置為 bar 。
條形圖就是將豎直的柱狀圖翻轉90度得到的圖形。與柱狀圖一樣,條形圖也可以有一組或多種多組數據。
水平條形圖在類別名稱很長的時候非常方便,因為文字是從左到右書寫的,與大多數用戶的閱讀順序一致,這使得我們的圖形容易閱讀。而柱狀圖在類別名稱很長的時候是沒有辦法很好的展示的。
直方圖是柱形圖的特殊形式,當我們想要看數據集的分布情況時,選擇直方圖。直方圖的變數劃分至不同的范圍,然後在不同的范圍中統計計數。在直方圖中,柱子之間的連續的,連續的柱子暗示數值上的連續。
箱線圖用來展示數據集的描述統計信息,也就是[四分位數],線的上下兩端表示某組數據的最大值和最小值。箱子的上下兩端表示這組數據中排在前25%位置和75%位置的數值。箱中間的橫線表示中位數。此時可以將參數 kind 設置為 box。
如果想要畫出散點圖,可以將參數 kind 設置為 scatter,同時需要指定 x 和 y。通過散點圖可以探索變數之間的關系。
餅圖是用面積表示一組數據的佔比,此時可以將參數 kind 設置為 pie。
我們剛開始學習的同學,最基本應該明白什麼數據應該用什麼圖形來展示,同學們來一起總結吧。
B. python怎麼畫折線圖
一、環境准備
linux ubuntu 下需安裝下面三個包:
Numpy, Scipy,Matplotlib
分別輸入下面的代碼進行安裝:
[plain]view plain
pipinstallnumpy
pipinstallscipy
sudoapt-getinstallpython-matplotlib
測試是否安裝成功
[html]view plain
python
>>>importpylab
如果沒有報錯則安裝成功
二、開始畫圖
1. 畫最簡單的直線圖
代碼如下:
[python]view plain
importnumpyasnp
importmatplotlib.pyplotasplt
x=[0,1]
y=[0,1]
plt.figure()
plt.plot(x,y)
plt.savefig("easyplot.jpg")
結果如下:
C. python繪折線圖(數據很多)很難看
數據使用前要清洗,去除無效數據。
如果這些數據都是有效數據,只是你不想顯示那些過份異常的數據,那麼,就進行去噪處理。
去噪分兩步:檢測噪點,噪點修正。
對於整體連續,總體范圍大的數據集,最簡單的檢測噪點的辦法就是鄰值法,對於第n取相鄰的k個值:p[n-k,],p[n-k+1]...p[n-1]
對它們加權平均,得到標准點,上下浮動一定范圍,如果p[k]不在這個范圍內就是異常點
對應的噪點修正可以使用類似的過程,局部噪點回歸法。
這些一般來說都不是很實現的東西,對於數據集結構的不同,沒有必要做成通用的包,所以你只有自己實現。
D. python畫折線圖
#encoding=utf-8
importmatplotlib.pyplotasplt
frompylabimport*#支持中文
mpl.rcParams['font.sans-serif']=['SimHei']
names=['5','10','15','20','25']
x=range(len(names))
y=[0.855,0.84,0.835,0.815,0.81]
y1=[0.86,0.85,0.853,0.849,0.83]
#plt.plot(x,y,'ro-')
#plt.plot(x,y1,'bo-')
#pl.xlim(-1,11)#限定橫軸的范圍
#pl.ylim(-1,110)#限定縱軸的范圍
plt.plot(x,y,marker='o',mec='r',mfc='w',label=u'y=x^2曲線圖')
plt.plot(x,y1,marker='*',ms=10,label=u'y=x^3曲線圖')
plt.legend()#讓圖例生效
plt.xticks(x,names,rotation=45)
plt.margins(0)
plt.subplots_adjust(bottom=0.15)
plt.xlabel(u"time(s)鄰居")#X軸標簽
plt.ylabel("RMSE")#Y軸標簽
plt.title("Asimpleplot")#標題
plt.show()