中boxplot函数的参数设置_如何在Python中生成图形和图表
在本章中,我們將學習如何在Python中生成圖形和圖表,同時將使用函數和面向對象的方法來可視化數據。
Python中常用的一些可視化數據包括以下幾種。
- Matplotlib。
- Seaborn。
- ggplot。
- Geoplotlib。
- Bokeh。
- Plotly。
在本章中將使用Matplotlib可視化數據包。此外,還將學習其他有用庫的編碼。
1 折線圖
折線圖(Line Chart)是將一系列數據點通過直線連接起來的圖表,它提供了一個參數對另一個參數的簡單行為,常用于顯示隨著時間推移的趨勢。可以使用折線圖來比較相關的特征。
在Jupyter Notebook中生成第一張圖表。
首先導入所需要的庫。
import matplotlib.pyplot as plt默認情況下, Matplotlib打開新的窗口以顯示結果。如果想在當前Notebook頁面看到結果,可以使用如下所示的命令。
%matplotlib inline其次需要設置兩個軸的數據。在x
軸上獲取1~15的數據, y
軸選取平均值為50且標準差為10的隨機數據。
# 1~15的一維數 a = range(1,16) #使用均值和標準差生成另一數據上的隨機整數mean = 50 sigma = 10 b = numpy.random.normal(mean, sigma, 15).astype(int)現在,只需運行下方的繪圖命令,折線圖就會出現,結果如圖1所示。
plt.plot(a,b)圖1
也可以使用下面的代碼改變線條的顏色,結果如圖2所示。
#定義顏色plt.plot(a,b,color='Red')圖2
通過ls和lw變量可以改變線的類型及其寬度,結果如圖3所示。
#改變線的類型和寬度plt.plot(a,b,ls='--',lw=4)圖3
通過下面的命令可以在每個數據點上添加標記,結果如圖4所示。
#定義標記和標記寬度plt.plot(a,b,marker='3',mew=10)圖4
也可以繪制Pandas DataFrame中的折線圖。
sales_in_Delhi = [34,45,33,45,49] sales_in_Pune = [12,13,6,14,10] sales_in_Mumbai = [67,78,90,75,85] sales =pandas.DataFrame({'Delhi':sales_in_Delhi,'Pune':sales_in_Pune,'Mumbai':sales_in_Mumbai})為了繪制折線圖,可以使用以下命令。 xticks和yticks用于設置數軸上的有效范圍,結果如圖5所示。
sales.plot(xticks=range(1,5),yticks=range(0,100,20))圖5
為不同的線條定義顏色,結果如圖6所示。
#定義顏色選項colors = ['Red','Green','Black'] sales.plot(xticks=range(1,5),yticks=range(0,100,20),color=colors)圖6
2 條形圖
條形圖(Bar Chart)常用于分析分組數據,它一般與分類數據一起使用,用來可視化其他變量對每一類別的影響。條形圖為每個類別創建一個矩形。例如,有3個類別的城市,我們希望了解這些城市中的車輛數量。通過使用條形圖,可以生成3個矩形(每個矩形代表一個城市),同時高度表示車輛數量。條形圖顯示了在每個類別的觀察次數。
使用下面的代碼繪制條形圖,結果如圖7所示。
plt.bar(a,b)圖7
也可以從Pandas中生成條形圖。默認情況下, plot函數生成折線圖。可以指示函數生成條形圖,結果如圖8所示。
sales.plot(kind='bar')圖8
3 餅圖
餅圖(Pie Chart)將整個數據表示為一個圓。根據不同類別的比例沿圓圈制作切片。例如,對3個城市的車輛進行分析,餅圖中展示了一個城市相比于其他城市的車輛比例。如果想在一個統一的規模下比較每個類別,餅圖是非常合適的。
通過使用以下命令生成餅圖,結果如圖9所示。
a = [3,4,5,7,12] plt.pie(a,labels=['AA','BB','CC','DD','EE'])圖9
定義每個切片的顏色,結果如圖10所示。
#為每個類別定義顏色color_list = ['Red','Green','Blue','Yellow','Grey'] plt.pie(a,labels=['AA','BB','CC','DD','EE'],colors=color_list)圖10
4 直方圖
直方圖(Histograms)是統計學中廣泛應用的圖形之一,它能使我們確定連續數據的形狀。通過直方圖可以檢測數據的分布、數據中的離群值和其他有用的屬性。
要通過連續數據構造直方圖,首先需要創建箱子(bin)并將數據放入適當的箱子中。這不同于與分類變量一起使用的條形圖。
例如,有以下數據。
Data = [23, 12, 34, 56, 43, 26, 13, 39, 58, 32, 44 ]
可以按照表1這樣定義箱子。
表1
箱子(bin)
數據點
數據點數
>20
12、13
2
20~40
23、34、26、39、32
5
40~60
56、43、58、44
4
使用matplotlib創建直方圖。
#用均值和標準差生成隨機整數mean = 20 sigma = 5 hist_data = numpy.random.normal(mean, sigma, 500).astype(int) plt.hist(hist_data)這將產生以下直方圖,結果如圖11所示。
圖11
5 散點圖
散點圖(Scatter Plot)能夠表示兩組數據點之間的關系。例如,任何人的體重和身高、交通強度和汽車數量、發表的論文數和多年的論文查看量等均可以通過散點圖來呈現。
使用下面的代碼生成散點圖,結果如圖12所示。
#用均值和標準差生成隨機整數mean = 20 sigma = 5 #生成數據并對其排序scatter_data_1 = numpy.sort(numpy.random.normal(mean, sigma,50).astype(int)) scatter_data_2 = numpy.sort(numpy.random.normal(mean, sigma,50).astype(int)) #散點圖plt.scatter(scatter_data_1,scatter_data_2)圖12
6 箱線圖
箱線圖(Box Plot)可以用來理解變量的擴展傳播。在箱線圖中,矩形頂部邊界代表上四分位數(third quantile),底部邊界代表下四分位數(first quantile),而盒子中的直線表示中位數(median)。
頂部的垂直線表示最大值,底部的垂直線表示最小值。
通過下面的代碼生成方框圖,結果如圖13所示。
box_data = numpy.random.normal(56, 10, 50).astype(int) plt.boxplot(scatter_data_1)圖13
7 采用面向對象的方式繪圖
除了使用函數生成圖形之外,還可以使用面向對象的方法來生成這種圖形。我們定義一個圖形對象并不斷地添加圖元素來豐富它。
首先,創建一個空白圖形對象并向其添加軸。然后,在對象內生成繪圖并為其指定參數,結果如圖14所示。
下面是該方法的代碼。
#一個數軸上獲取1~15的數字a = range (1,16) #用均值和標準差生成另一數軸上的隨機整數mean = 50 sigma = 10 b = numpy.random.normal(mean, sigma, 15).astype(int) #首先,定義圖形對象figure_object = plt.figure() #添加軸axes = figure_object.add_axes([.1,.1,1,1]) #添加網格axes.grid() #設置軸標簽axes.set_xlabel('X') axes.set_ylabel('Y') #設置坐標軸顯示axes.set_xticks(range(1,15)) axes.set_yticks(range(20,100,10)) #設定軸極限axes.set_xlim([1,15]) axes.set_ylim([20,80]) #生成圖axes.plot(a,b)圖14
在上面的代碼中進行了如下的操作。
(1)使用plt.figure()創建了圖形對象。
(2)使用add_axes定義數軸。
(3)使用grid()啟用網格。
(4)定義了數軸標簽。
(5)定義數軸上的值axes (xticks, yticks)。
(6)添加了數軸的下限和上限。
(7)使用plot生成繪圖。
也可以創建子圖,通過子圖對其進行比較。
mean = 20 sigma = 5 c = numpy.random.normal(mean, sigma, 15).astype(int) #創建圖形對象fig_sub_object = plt.figure() #圖形對象中的兩個軸number_of_rows= 1 number_of_cols = 2 fig_sub_object, (axes1,axes2) = plt.subplots(number_of_rows,number_of_cols) axes1.plot(a,b) axes2.plot(a,c)生成圖15所示的圖形。
圖15
8 Seaborn
Seaborn是基于Matplotlib的Python程序包,它提供了一些高層次的統計圖形方法。下面會介紹到一些Seaborn中常用的繪圖。
首先導入Seaborn。
import seaborn然后創建一些隨機數據。
#用均值和標準差生成隨機整數mean = 25 sigma = 10 dist_data_1 = numpy.random.normal ( mean, sigma, 500).astype(int) dist_data_2 = numpy.random.normal(mean+5, sigma-4, 500).astype(int) dist_data_3 = numpy.random.normal(mean-5, sigma+2, 500).astype(int) dist_data = pandas.DataFrame({"A":dist_data_1,"B":dist_data_2,"C":dist_data_3}) #首先,創建分類數據data = ["Delhi總結
以上是生活随笔為你收集整理的中boxplot函数的参数设置_如何在Python中生成图形和图表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络知识:路由器不关闭这个功能,视频越刷
- 下一篇: python定义一个列表_如何在Pyth