graphpad做折線圖坐標軸數字_pandas做數據可視化具體操作,快來看看吧

來自公眾號:大鄧和他的Python

2afa65eda54a61190136e249cdf07695.png

常見的數據可視化庫有:

  • matplotlib 是最常見的2維庫,可以算作可視化的必備技能庫,由于matplotlib是比較底層的庫,api很多,代碼學起來不太容易。

  • seaborn 是建構于matplotlib基礎上,能滿足絕大多數可視化需求。更特殊的需求還是需要學習matplotlib

  • pyecharts 上面的兩個庫都是靜態的可視化庫,而pyecharts有很好的web兼容性,可以做到可視化的動態效果。

但是在數據科學中,幾乎都離不開pandas數據分析庫,而pandas可以做

  • 數據采集?如何批量采集網頁表格數據?

  • 數據讀取??pd.read_csv/pd.read_excel

  • 數據清洗(預處理)??理解pandas中的apply和map的作用和異同

  • 可視化,兼容matplotlib語法(今天重點)

在本文我們可以學到用pandas做

  • 導入數據

  • 繪制最簡單的圖plot()

  • 多個y的繪制圖

  • 折線圖、條形圖、餅形圖和散點圖繪制

  • 統計信息繪圖

  • 箱型圖

  • 軸坐標刻度

  • plot()更多精細化參數

  • 可視化結果輸出保存

準備工作

如果你之前沒有學過pandas和matpltolib,我們先安裝好這幾個庫

!pip3 install numpy

!pip3 install pandas

!pip3 install matplotlib

已經安裝好,現在我們導入這幾個要用到的庫。使用的是倫敦天氣數據,一開始我們只有12個月的小數據作為例子

#jupyter notebook中需要加這行代碼

%matplotlib inline

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

#讀取天氣數據

df = pd.read_csv('data/london2018.csv')

df

e5ee256b92fce60f4c037f8f1ff8ac57.png

plot最簡單的圖

選擇Month作為橫坐標,Tmax作為縱坐標,繪圖。

大家注意下面兩種寫法

#寫法1

df.plot(x='Month', y='Tmax')

plt.show()

a92307994470f8980cf5a229a868b7d7.png

  • 橫坐標軸參數x傳入的是df中的列名Month

  • 縱坐標軸參數y傳入的是df中的列名Tmax

折線圖

上面的圖就是折線圖,折線圖語法有三種

  • df.plot(x='Month', y='Tmax')

  • df.plot(x='Month', y='Tmax', kind='line')

  • df.plot.line(x='Month', y='Tmax')

df.plot.line(x='Month', y='Tmax')

plt.show()

a92307994470f8980cf5a229a868b7d7.png

#grid繪制格線

df.plot(x='Month', y='Tmax', kind='line', grid=True)

plt.show()

9bb8ccdee4c74f1aff7aac8a8aee7131.png

多個y值

上面的折線圖中只有一條線, 如何將多個y繪制到一個圖中

比如Tmax, Tmin

df.plot(x='Month', y=['Tmax', 'Tmin'])

plt.show()

608d186e9178b7d7911837abd348afc5.png

條形圖

df.plot(x='Month',

y='Rain',

kind='bar')

#同樣還可以這樣畫

#df.plot.bar(x='Month', y='Rain')

plt.show()

6ab143e008772158cb42920f1c56fa7d.png

水平條形圖

bar環衛barh,就可以將條形圖變為水平條形圖

df.plot(x='Month',

y='Rain',

kind='barh')

#同樣還可以這樣畫

#df.plot.bar(x='Month', y='Rain')

plt.show()

d0381927b01601c242a7d225f0229cc1.png

多個變量的條形圖

df.plot(kind='bar',

x = 'Month',

y=['Tmax', 'Tmin'])

plt.show()

383dc3dd077ebf57ae17f744c4edb1d3.png

散點圖

df.plot(kind='scatter',

x = 'Month',

y = 'Sun')

plt.show()

24dfcbe90100cbdbe49357510393f146.png

餅形圖

df.plot(kind='pie', y='Sun')

plt.show()

397f56cda6f301f8fff0c74c3e447fd4.png

上圖繪制有兩個小問題:

  • legend圖例不應該顯示

  • 月份的顯示用數字不太正規

df.index = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']

df.plot(kind='pie', y = 'Sun', legend=False)

plt.show()

49cfd0ed1febf6f1621ee42a2f6f1e91.png

更多數據

一開頭的數據只有12條記錄(12個月)的數據,現在我們用更大的倫敦天氣數據

import pandas as pd

df2 = pd.read_csv('data/londonweather.csv')

df2.head()

08074094b99d38f833f976ddd3532243.png

df2.Rain.describe()

count 748.000000

mean 50.408957

std 29.721493

min 0.300000

25% 27.800000

50% 46.100000

75% 68.800000

max 174.800000

Name: Rain, dtype: float64

上面一共有748條記錄, 即62年的記錄。

箱型圖

df2.plot.box(y='Rain')

#df2.plot(y='Rain', kind='box')

plt.show()

cfa033b85a9f18c6e208df9b2fe52203.png

直方圖

df2.plot(y='Rain', kind='hist')

#df2.plot.hist(y='Rain')

plt.show()

96e9f5224a68706995596f269ec424e7.png

縱坐標的刻度可以通過bins設置

df2.plot(y='Rain', kind='hist', bins=[0,25,50,75,100,125,150,175, 200])

#df2.plot.hist(y='Rain')

plt.show()

ac17c797707fff436f1e8cd7c00593ad.png

多圖并存

df.plot(kind='line',

y=['Tmax', 'Tmin', 'Rain', 'Sun'], #4個變量可視化

subplots=True, #多子圖并存

layout=(2, 2), #子圖排列2行2列

figsize=(20, 10)) #圖布的尺寸

plt.show()

9e83833f8d9156aec4b03e8b664e4b9a.png

df.plot(kind='bar',

y=['Tmax', 'Tmin', 'Rain', 'Sun'], #4個變量可視化

subplots=True, #多子圖并存

layout=(2, 2), #子圖排列2行2列

figsize=(20, 10)) #圖布的尺寸

plt.show()

0c513ed857131c60421e750d91a4093c.png

加標題

給可視化起個標題

df.plot(kind='bar',

y=['Tmax', 'Tmin'], #2個變量可視化

subplots=True, #多子圖并存

layout=(1, 2), #子圖排列1行2列

figsize=(20, 5),#圖布的尺寸

title='The Weather of London') #標題

plt.show()

3bd035b2dca63e983a4e432013a0d21f.png

保存結果

可視化的結果可以存儲為圖片文件

df.plot(kind='pie', y='Rain', legend=False, figsize=(10, 5), title='Pie of Weather in London')

plt.savefig('img/pie.png')

plt.show()

cf8940b7e1a6c77fe0feeaa04c99e7d2.png

df.plot更多參數

df.plot(x, y, kind, figsize, title, grid, legend, style)

  • x 只有dataframe對象時,x可用。橫坐標

  • y 同上,縱坐標變量

  • kind 可視化圖的種類,如line,hist, bar, barh, pie, kde, scatter

  • figsize 畫布尺寸

  • title 標題

  • grid 是否顯示格子線條

  • legend 是否顯示圖例

  • style 圖的風格

查看plot參數可以使用help

import pandas as pd

help(pd.DataFrame.plot)

377e1b2208603cd7ddcc7354e2356111.png


●編號936,輸入編號直達本文

●輸入m獲取文章目錄

38a8a373d2dc8a1cf60da6febe991427.gif

往期推薦

用Python,炫酷地圖輕松繪制,一起來學習吧

世界Python開發調查統計報告,請查收

用Python,Bilibili二次元妹子視頻輕松搞到手!

三個操作,讓Python編程更細膩

這個大廠的副總裁又出事了!

3d54a60a59ac91cf0f7a62745a541918.png

708a35fb52010dbc2092dbcf262572c4.png

點擊“閱讀原文”,領取 2020 年最新免費技術資料大全

↓↓↓?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534279.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534279.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534279.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux課堂筆記(4)

常用指令:mv 1,隱藏文件 (1)windows通過設置屬性隱藏文件 attrib h s 文件 attrib h s d:\net.txt attrib h s d:\net.txt (2)linux系統文件以點開始命名隱藏文件 mv /路徑/源文件 /路徑/目標…

實現輸入提示 layui_ASP.NET Core SignalR :學習消息通訊,實現一個消息通知

什么是 SignalR目前我用業余時間正在做一個博客系統,其中有個功能就是評論通知,就是假如A用戶評論B用戶的時候,如果B用戶首頁處于打開狀態,那么就會提示B用戶有未讀消息。暫時用SignalR來實現這個功能。我也是看了兩天的資料才明白…

linux課堂筆記(5)

vi編輯器 1,vi版本:vi —— vim ps:查看進程 進程 ID 時間 終端 進程名稱 ps -t 終端(查看指定終端進程) vi 回車(提示vi版本信息) 2,vi特點 (1)…

兩個字和三個字一樣寬_武漢國慶出行 記好三個字

武漢國慶出行國慶黃金周帶你一起見證奇跡樂在武漢國慶去哪兒玩?記住:三 個 字歡樂谷記住【歡樂谷】三個字,你就不會迷路!不算白來。歡樂谷有啥好?免費!國慶期間,歡樂谷面向全國人民免費開放&…

linux課堂筆記(6)

設置文件訪問權限: 1,通過字母設置:參數 字母 (1)用戶類型: u 擁有者 g 同組用戶 o 其他用戶 a所有用戶 (2)權限:r 讀 w 寫 x執行 注:目錄權…

什么標簽用于在表單中構建復選框_UI/UX筆記之如何設計好表單

原文鏈接:UI/UX筆記之如何設計好表單 | 須臾所學免費設計資源網?presentationvip.com無論是注冊流程,多視圖步驟程序還是單調的數據輸入界面,表單都是數字產品設計中最重要的組成部分之一。本文重點介紹表單設計的常見事項。請記住&#xff…

linux課堂筆記(7)

編譯器&#xff1a;gcc 格式&#xff1a;gcc [參數] <源程序> gcc test.c 注&#xff1a;默認生成可執行程序a.out&#xff08;windows默認test.exe&#xff09; ./a.out gcc -o 可執行文件 源程序 gcc -o test.exe test.c&#xff08;windows&#xff09; g…

mqtt 發送消息過多_阿里云MQTT服務端注解式消息處理分發與同步調用實踐小結

一、前言前段時間公司預研了設備app端與服務端的交互方案&#xff0c;出于多方面考量最終選用了阿里云的微服務隊列MQTT方案&#xff0c;基于此方案&#xff0c;本人主要實踐有&#xff1a;1. 封裝了RocketMQ實現MQTT訂閱與發布的實現細節&#xff1b;2. 實現了注解式分發處理&…

linux課堂筆記(8)

磁盤分區工具&#xff08;parted&#xff09; 1&#xff0c;語法&#xff1a; parted 磁盤 注&#xff1a;磁盤類型&#xff08;根據接口劃分&#xff09; &#xff08;1&#xff09;IDE-hd&#xff0c;hda&#xff0c;hdc&#xff08;光驅&#xff09;&#xff0c;hdd 加…

css引入矢量圖標_WEB 項目開發中的圖標管理解決方案

相信很多前端開發人員在項目開發過程中都會遇到這樣一個問題&#xff1a;頁面的圖標發生改動&#xff0c;需要往圖標文件中追加新的圖標&#xff0c;卻因為圖標文件已經打包好而無從下手&#xff0c;重新制作一份圖標文件吧&#xff0c;要考慮替換整個項目的圖標&#xff0c;工…

判斷按鍵值_Pygame(九)按鍵事件(2)

Pygame(九)按鍵事件(2)前情提要前情提要作業解析完整代碼# /usr/bin/python3# Author: 愛編程的章老師# Time: 2021/1/7 0007# E-mail: Bluesand2010163.comimport pygame, sys, timefrom random import randintdef homework():作業 擋板接球 一個寬100 ,高10的棕色擋板,…

動態添加input_前端提效必備:動態模版生成

前言在日常開發中&#xff0c;我們需要不停的新建頁面和組件。以 Vue 項目為例&#xff0c;我們在新建一個頁面的時候&#xff0c;需要經歷一遍又一遍重復的過程&#xff1a;1、先新建一個文件夾2、然后新建一個 .vue 文件&#xff0c;寫上 、", "" ],"…

在dom最前面插入_JavaScript中的DOM

1. 關于DOM文檔對象模型(DocumentObject Model)&#xff0c;是基于瀏覽器編程的一套API接口&#xff0c;W3C出臺的推薦標準&#xff0c;每個瀏覽器都有一些細微的差別&#xff0c;其中以Mozilla(火狐)的瀏覽器最與標準接近。通過 DOM&#xff0c;可以訪問所有的 HTML元素&#…

python 快速刪除程序_如何快速一次性卸載所有python包(第三方庫)呢

很多時候我們都會有一個麻煩事&#xff0c;就是打開pycharm或者VScode等的時候&#xff0c;都有可能因為自己電腦上面安裝的第三方模塊過多&#xff0c;導致電腦很卡&#xff0c;風扇轉速不停地增加&#xff0c;這時候我們就會想去卸載一些不太用得著的第三方模塊&#xff0c;但…

python正則表達式修飾符_Python正則表達式

正則表達式是一個特殊的字符序列&#xff0c;它能幫助你方便的檢查一個字符串是否與某種模式匹配。re 模塊使 Python 語言擁有全部的正則表達式功能。compile 函數根據一個模式字符串和可選的標志參數生成一個正則表達式對象。該對象擁有一系列方法用于正則表達式匹配和替換。r…

當代最值得收藏的畫家作品_當代最具潛力和收藏價值的十大畫家

原標題&#xff1a;當代最具潛力和收藏價值的十大畫家當代從事繪畫的人成千上萬&#xff0c;哪些名家作品值得收藏&#xff1f;當前都有哪些“潛力股”&#xff0c;相關專家綜合市場分析&#xff0c;純從藝術水準上列出值得收藏的“潛力股”&#xff0c;供愛好書畫收藏的各界人…

備抵附加賬戶的期末余額_會計賬戶的分類(二)

待攤費用賬戶的格式和運用方法同盤存類賬戶&#xff0c;即&#xff1a;期初如果有余額在借方&#xff0c;本期發生額的增加數在借方&#xff0c;本期發生額的減少數在貸方&#xff0c;期末如果有余額在借方。預提費用賬戶是指用來核算和監督按規定預先提取計入當期&#xff0c;…

mysql union all 別名_mysql union和union all

如下先創建2個表&#xff0c;aa bb.CREATE table aa(uid int(20) not null,name VARCHAR(30) not null)engineinnodb default charsetutf8mb4 COLLATE utf8mb4_general_ci;INSERT INTO aa(uid, name) VALUES (10, 張芳);INSERT INTO aa(uid, name) VALUES (11, 王凱);INSERT IN…

MySQL不走聯合索引_mysql group by 多列優化思路?為什么不走聯合索引?

explain SELECT a, b, COUNT(*) FROM tbnameGROUP BY a, border by a DESClimit 1a 和 b 列已經設置聯合索引&#xff0c; 為什么這種操作也會執行全表掃描呢&#xff1f;explain SELECT a, b FROM tbnameGROUP BY a, border by a DESC去掉 COUNT 和 limit 則走索引沒有掃描&am…

mysql ddl 鎖_MySQL Online DDL導致全局鎖表案例分析

MySQL Online DDL導致全局鎖表案例分析我這邊遇到了什么問題?線上給某個表執行新增索引SQL, 然后整個數據CPU打到100%, 連接數暴增到極限, 最后導致所有訪問數據庫的應用都奔潰.SQL如下:ALTER TABLE bookADD INDEX idx_sub_title (sub_title ASC);能看到什么?10063293, root,…