成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇文章帶你搞定 Pandas 繪圖 API

開發 后端
pandas除了數據處理還可以進行數據可視化展示,這里我們簡單說明一下pandas繪制常見圖形的一些API,使用pandas繪圖其實并不多,這里做一個簡單展示。

圖片

對于從網頁上爬取下來的數據很多很雜亂,我們需要進行數據可視化,pandas除了數據處理還可以進行數據可視化展示,這里我們簡單說明一下pandas繪制常見圖形的一些API:由于現在針對數據可視化有很多庫,matplotlib、seaborn、pyecharts等等,使用pandas繪圖其實并不多,這里做一個簡單展示。

目錄:

  • 柱狀圖
  • 餅圖
  • 折線圖
  • 散點圖
  • 直方圖

柱狀圖

普通柱圖

首先我們打開excel數據文件,如下圖所示:

圖片

Field:專業;Number:對應專業學生數量,根據兩列數據繪制簡單柱圖:

import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('Students.xlsx')
# pd繪圖
data.sort_values(by='Number',inplace=True,ascending=False)
data.plot.bar(x='Field',y='Number',title='National Students Field')

plt.tight_layout()
plt.show()

解釋說明:

  1. Students.xlsx:對應的數據文件;
  2. data.sort_values(by='Number',inplace=True,ascending=False):按照Number數量大小排序,inplace = True:在當前數據文件上修改,不生成新的數據文件,ascending = False:降序排序;
  3. bar() 繪制柱圖的函數,x、y分別指定下,x、y軸的序列;
  4. tight_layout() 使得整個圖緊湊顯示,不然x軸的文字由于太長會被擋住;

結果如下所示:

圖片

分組柱圖

首先我們還是查看數據文件:students02.xlsx

圖片

給出了2016、2017兩年的學生數量,由此考慮繪制分組柱狀圖:

import  pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('Students02.xlsx')
data.sort_values(by='2017',inplace=True,ascending=False)
data.plot.bar(x='Field',y=['2016','2017'],color=['red','orange'])

plt.title('National Students Number',fontsize=16,fontweight='bold')
plt.xlabel('Field',fontweight='bold')
plt.ylabel('Number',fontweight='bold')
# x軸刻度偏轉
ax = plt.gca()
ax.set_xticklabels(data['Field'],rotation=45,ha='right')
print(data)
f = plt.gcf()
f.subplots_adjust(left=0.2,bottom=0.4)
# plt.tight_layout()
plt.show()

解釋說明:

  1. bar() 繪制柱圖的函數,x、y分別指定下,x、y軸的序列,但是由于分組柱圖y軸不再是一個序列,而是由兩個(或多個)序列組成的列表;
  2. plt.title() 設置標題,當然也可以在bar() 函數里面設置;
  3. plt.gca() 獲得x軸的文字,下一列重新設置x軸的文字,并且把文字旋轉45°,ha='right':依照右點為中心進行水平對齊;
  4. plt.gcf() 拿到繪制的圖形對象,設置留白區域,left=0.2(左側留白20%),bottom=0.4,底部留白40%;

結果如下:

圖片

疊加柱圖

有的時候可能不只有兩組數據,要觀察多組數據的數量占比,可以采用疊加柱圖:

import matplotlib.pyplot as plt 
import pandas as pd
data = pd.read_excel('./excel文件/Users.xlsx') # 這里數據文件就不再展示
data['total'] = data['Oct'] + data['Nov'] + data['Dec']
data.sort_values(by='total',inplace=True,ascending=False)
# data.plot.bar(x='Name',y=['Oct','Nov','Dec'],stacked=True,title='Users Behavior') 豎直
data.plot.barh(x='Name',y=['Oct','Nov','Dec'],stacked=True,title='Users Behavior') #水平 如果需要改變順序,將ascending=true
plt.tight_layout()
plt.show()

結果如下圖所示:

圖片

餅圖

首先我們先查看一下數據文件,如下所示:

圖片

給出了2016,2017年來自不同國家的學生數量排名(rank);

由此繪制餅圖:

import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(12,8),dpi=100)

students = pd.read_excel('./bin_Students.xlsx', index_col='From')

students['2017'].plot.pie(fontsize=8,counterclock=False)
plt.title('Source of International Students', fontsize=16, fontweight='bold')
plt.ylabel('2017', fontsize=12, fontweight='bold')
plt.show()

解釋說明:

  1. figsize:設置圖片大小,dpi:設置圖片分辨率;
  2. pie()函數繪制餅圖的的api函數,counterclock=False:這個參數設置餅圖占比元素的環繞方向,false變送逆時針;

結果如下圖所示:

圖片

折線圖

由于文件數據過多,這里不做展示;簡言之就是四個區域的不同周期的銷售狀況

繪圖代碼:

import pandas as pd 
import matplotlib.pyplot as plt
data = pd.read_excel('./excel文件/Orders.xlsx',index_col='Week')
data.plot.area(y=['Accessories','Bikes','Clothing','Components']) #疊加區域圖
plt.title('Sale Week Trend',fontsize=14,fontweight='bold')
plt.ylabel('Total',fontsize=10,fontweight='bold')
plt.xticks(data.index,fontsize=5)
plt.show()

結果如下:

圖片

由于后面集中圖形使用較少,這里不再展示數據文件,直接上代碼:

散點圖

import matplotlib.pyplot as plt 
import pandas as pd
data = pd.read_excel('./excel文件/home_data.xlsx',index_col='id')
data.plot.scatter(x='sqft_living',y='price') # 房子面積 價位
plt.show()

結果如下:

圖片

該圖形繪制的是在某地區房子價位與房子面積的分布關系;

直方圖

import matplotlib.pyplot as plt 
import pandas as pd
data = pd.read_excel('./excel文件/home_data.xlsx')
data['sqft_living'].plot.hist(bins=60) # bins 表示柱子的數量
plt.xticks(range(0,max(data['sqft_living']),500),rotation=90,fontsize=6)
plt.show()

結果如下:

圖片

該圖表示某地區房子的價位的分布情況。

總結

以上就是使用pandas結合matplotlib繪制一些基本常用圖形的例子,當然了例子是固定的,圖形是靈活的,我們還是要根據不同的數據表,結合不同的現實狀況,繪制不同的圖形達到我們的目的。

責任編輯:龐桂玉 來源: Python共享之家
相關推薦

2020-02-28 11:29:00

ElasticSear概念類比

2021-05-15 10:16:14

Python匿名函數

2024-04-17 13:21:02

Python匿名函數

2021-11-17 10:11:08

PythonLogging模塊

2022-03-30 10:51:40

JavaScript性能調優

2021-03-06 10:05:03

Python函數變量

2021-11-10 09:19:41

PythonShutil模塊

2021-03-15 08:38:42

StringBuffeJava基礎Java開發

2022-02-21 09:44:45

Git開源分布式

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺

2021-05-31 08:59:57

Java數據庫訪問JDBC

2021-01-13 08:40:04

Go語言文件操作

2021-11-13 10:11:45

Pythonurllib庫Python基礎

2021-02-20 10:06:14

語言文件操作

2021-02-27 10:20:18

Go語言flag包開發技術

2023-09-06 14:57:46

JavaScript編程語言

2021-05-18 08:30:42

JavaScript 前端JavaScript時

2021-06-24 09:05:08

JavaScript日期前端

2021-09-27 09:18:30

ListIterato接口方法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 超碰在线久 | 精品一区二区在线观看 | 日本国产一区二区 | 亚洲午夜视频在线观看 | 久久精品国产v日韩v亚洲 | 日本精品一区二区三区四区 | 欧美v日韩v | 激情网站在线观看 | 美女视频h| 色欧美综合 | 亚洲一区 中文字幕 | 欧美国产视频一区二区 | 国产精品视频久久 | 欧美性一区二区三区 | 国产精品美女久久久久久免费 | 国产精品久久久久久高潮 | 久一精品| 日韩一级在线 | 国产精品久久久久一区二区三区 | 成年人免费看的视频 | 久久国产婷婷国产香蕉 | 午夜丰满寂寞少妇精品 | 91久久精品一区二区二区 | 亚洲444kkkk在线观看最新 | 久久久成人一区二区免费影院 | 97综合在线| 国产伦精品一区二区三区精品视频 | 一区二区不卡 | 日韩精品一区二区三区免费视频 | www.4hu影院 | 一区二区免费 | 亚洲高清中文字幕 | 91av视频 | 亚洲综合无码一区二区 | 97精品国产 | 黄色播放| 成人av片在线观看 | 91精品麻豆日日躁夜夜躁 | 久久精品亚洲一区 | 久久精品久久久久久 | 天天人人精品 |