matplotlib——散點圖和條形圖(python)

散點圖

需求

我們獲得北京2016年三月和十月每天白天最高氣溫,我們現在需要找出氣溫隨時間變化的某種規律。

代碼

# 導入庫
from matplotlib import pyplot as plt
import random# 解決中文亂碼
import matplotlib
matplotlib.rc("font",family="FangSong")# 初始化數據
y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
y=y_3+y_10# 調整畫布屬性
plt.figure(figsize=(20,8),dpi=200)# 調整x/y軸的屬性
x_3=range(1,32)
x_10=range(51,82)x=list(x_3)+list(x_10)
x_ticks=["三月{}日".format(i) for i in x_3]
x_ticks+=["十月{}日".format(i-50) for i in x_10]plt.xticks(x[::2],x_ticks[::2],rotation=45)
plt.yticks(range(min(y),max(y)+1))# 添加描述信息
plt.xlabel("日期")
plt.ylabel("溫度(攝氏度)")# 繪制散點圖
plt.scatter(x_3,y_3,label="三月")
plt.scatter(x_10,y_10,label="十月")
plt.legend()# 展示散點圖
plt.show()

效果

在這里插入圖片描述

說明

散點圖和折線圖很多一樣,就是把最后的plt.plot改成plt.scatter即可


條形圖

需求

假如你獲取到2017年內地電影票房前20的電影和電影票房數據

第一版

代碼
from matplotlib import pyplot as plt
import matplotlib# 解決中文亂碼
matplotlib.rc("font",family="FangSong")# 初始化數據
x = ["戰狼2","速度與激情8","功夫瑜伽","西游伏妖篇","變形金剛5:最后的騎士","摔跤吧!爸爸","加勒比海盜5:死無對證","金剛:骷髏島","極限特工:終極回歸","生化危機6:終章","乘風破浪","神偷奶爸3","智取威虎山","大鬧天竺","金剛狼3:殊死一戰","蜘蛛俠:英雄歸來","悟空傳","銀河護衛隊2","情圣","新木乃伊",]y = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]plt.figure(figsize=(20,8),dpi=200)# 設置x軸
plt.xticks(range(len(x)),x,rotation=270)# 繪制條形圖
plt.bar(range(len(x)),y,color="b")
plt.show()
效果

在這里插入圖片描述

說明

和折線圖沒什么改變,就是在最后繪制時(plt.bar)傳參數時只能傳含數字的可迭代對象(說人話就是,傳一個數字列表,對應x軸和y軸數據)


第二版

代碼
from matplotlib import pyplot as plt
import matplotlib# 解決中文亂碼
matplotlib.rc("font",family="FangSong")# 初始化數據
x = ["戰狼2","速度與激情8","功夫瑜伽","西游伏妖篇","變形金剛5:最后的騎士","摔跤吧!爸爸","加勒比海盜5:死無對證","金剛:骷髏島","極限特工:終極回歸","生化危機6:終章","乘風破浪","神偷奶爸3","智取威虎山","大鬧天竺","金剛狼3:殊死一戰","蜘蛛俠:英雄歸來","悟空傳","銀河護衛隊2","情圣","新木乃伊",]y = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]plt.figure(figsize=(20,8),dpi=200)
plt.yticks(range(len(x)),x)# 將圖形橫過來
plt.barh(range(len(x)),y,height=0.3,color="orange")# 設置網格
plt.grid(alpha=.4)plt.show()
效果

在這里插入圖片描述

說明

把圖形橫過來數據會更加直觀,我們只需要將plt.bar改成plt.barh即可


進階練習

需求

假設你知道四個電影分別在2017-09-14,2017-09-15,2017-09-16三天的票房,為了展示列表中電影本身的票房以及同其他電影的數據對比情況。

代碼
from matplotlib import pyplot as plt
import matplotlib# 解決中文亂碼
matplotlib.rc("font",family="FangSong")# 初始化數據x = ["猩球崛起3:終極之戰","敦刻爾克","蜘蛛俠:英雄歸來","戰狼2"]
y_16 = [15746,312,4497,319]
y_15 = [12357,156,2045,168]
y_14 = [2358,399,2358,362]plt.figure(figsize=(20,8),dpi=200)# 設置偏移量
bar_width=0.2# 設置每個日期條形塊的位置
# x_14在最左邊,然后x_15在x_14右邊,x_16在x_15右邊,依次偏移
x_14=list(range(len(x)))
x_15=[i+bar_width for i in x_14]
x_16=[i+bar_width*2 for i in x_14]# 設置x軸刻度
plt.xticks(x_15,x)# 繪制條形圖,因為有三個日期,所以要繪制三次
plt.bar(x_14,y_14,width=bar_width,label="九月十四日")
plt.bar(x_15,y_15,width=bar_width,label="九月十五日")
plt.bar(x_16,y_16,width=bar_width,label="九月十六日")# 設置標簽
plt.xlabel("電影")
plt.ylabel("票房")
plt.title("九月十四日至十六日電影票房變化")plt.legend()
plt.show()
效果

在這里插入圖片描述

說明

這個條形圖有點復雜,主要是畫三個條形圖在一張畫布上。我們要設置每個條形圖的偏移量,使得這些條形圖不重疊

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

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

相關文章

【筆記】-編程語言以及應用領域

C/C 永遠不會衰敗的語言,適合偏底層,例如:Windows操作系統80%以上都是由C/C完成的,C/C也集成用于寫應用層C/S架構的軟件 JAVA 是真正的跨平臺的語言 “一次編程,到處使用”Java適合應用層的開發,無論是…

Python的錯誤和異常

文章目錄 python的語法錯誤異常異常處理用戶自定義異常定義清理行為預定義的清理行為 python的語法錯誤 語法錯誤(Syntax Error)是指代碼不符合Python語言的語法規則。當解釋器在執行代碼之前對其進行解析時,如果發現代碼中有語法錯誤&#…

領域驅動設計(Domain-Driven Design DDD)——戰略設計1

一、概述 隨著系統的增長,它會越來越復雜,當我們無法通過分析對象來理解系統的時候,就需要掌握一些操縱和理解大模型的技術了。 最負雄心的企業欲實現一個涵蓋所有業務、緊密集成的系統。因大型公司的業務模型巨大且復雜,很難把它…

2403d,d的108版本更改

原文 編譯器更改 1,在object.d中給TypeInfo_Class添加了.nameSig字段 2,總是在調用點求值像__FILE__此類關鍵字 3,現在可按整數數組轉換十六進制串 4,添加支持插值式序列 庫更改 1,isForwardRange,isBidirectionalRange和isRandomAccessRange現在帶可選元素類型 2,std.uni已…

K8s 鏡像緩存管理 kube-fledged 認知

寫在前面 博文內容為K8s 鏡像緩存管理 kube-fledged 認知內容涉及: kube-fledged 簡單介紹部署以及基本使用 理解不足小伙伴幫忙指正 不必太糾結于當下,也不必太憂慮未來,當你經歷過一些事情的時候,眼前的風景已經和從前不一樣了。…

springboot236基于springboot在線課程管理系統的設計與實現

基于SpringBoot在線課程管理系統的設計與實現 摘要 本文首先介紹了在線課程管理系統的現狀及開發背景,然后論述了系統的設計目標、系統需求、總體設計方案以及系統的詳細設計和實現,最后對在線課程管理系統進行了系統檢測并提出了還需要改進的問題。本系…

Spring Data Redis 使用方式

在Java中操作Redis 1. 在Java中操作Redis1.1 Redis的Java客戶端1.2 Spring Data Redis使用方式1.2.1 介紹1.2.1 環境搭建1.2.3 操作常見類型數據 1. 在Java中操作Redis 1.1 Redis的Java客戶端 Redis 的 Java 客戶端很多,常用的幾種: JedisLettuceSpri…

關于Axios接口請求超時處理與重試的方法教程

在前端開發中,使用Axios作為HTTP客戶端庫進行接口請求是非常常見的做法。然而,在實際開發中,我們經常會遇到網絡不穩定或服務器響應緩慢導致接口請求超時的情況。為了提高用戶體驗和程序的穩定性,我們需要實現接口請求超時的處理與…

UnityAPI的學習——Transform類

Transform類繼承自Component類,并實現了IEnumberable接口。Transform是GameObject必須擁有得一個組件,用來管理所在GameObject對象的坐標位置、選擇角度、和大小縮放。 Transform實現了IEnumberable接口,因此可以在程序中使用foreach()方法快…

echarts vue 動畫效果的水球圖、波浪圖教程

1、安裝插件 前提是已經安裝了echarts(我的版本是4.2.1) npm install echarts-liquidfill --save 我安裝了3.1.0版本的,結果運行時報錯"TypeError: wave.ensureState is not a function" 原因:echarts版本和echarts-l…

miniconda3徹底刪除虛擬環境

退出虛擬環境:確保您不在要刪除的虛擬環境中。如果在,使用命令 conda deactivate 來退出當前激活的虛擬環境。查看虛擬環境列表:運行命令 conda env list 或 conda info -e 來查看所有存在的虛擬環境及其路徑。刪除虛擬環境:使用命…

在VMware中安裝CentOS 7并配置Docker

VMware安裝CentOS 7 一、介紹 該文章介紹如何使用啟動U盤在虛擬機里面安裝系統,虛擬機版本為VMware Workstation 16 pro,Linux版本為CentOS Linux release 7.9.2009 (Core)。 二、安裝 1、創建虛擬機 點擊創建新的虛擬機 選擇典型就可以了&#xf…

前綴和算法題(區間次方和、小藍平衡和、大石頭的搬運工、最大數組和)

一、前綴和的原理和特點 prefix表示前綴和,前綴和由一個用戶輸入的數組生成。對于一個數組a[](下標從1開始),我們定義一個前綴和數組prefix[],滿足: prefix有一個重要的特性,可以用于快速生成p…

WordPress建站入門教程:如何安裝本地WordPress網站運行環境?

有些站長想要搭建WordPress網站,又擔心自己玩不轉,白白浪費購買域名和主機空間的費用。像這種情況,最好的做法就是在自己電腦上安裝一個WordPress網站運行環境,然后在本地電腦搭建WordPress,等熟悉掌握后再考慮購買域名…

設計模式學習筆記——抽象工廠模式

設計模式(創建型)—— 抽象工廠模式 在工廠模式中,我們為每一個類都設計了一個工廠,以此來獲取該類的對象,但缺點就是一旦類多了,工廠就多了,這時候我們可以考慮這些類間是否有關聯&#xff0c…

多輸入多輸出 | MATLAB實現GWO-Elman灰狼優化循環神經網絡多輸入多輸出預測

多輸入多輸出 | MATLAB實現GWO-Elman灰狼優化循環神經網絡多輸入多輸出預測 目錄 多輸入多輸出 | MATLAB實現GWO-Elman灰狼優化循環神經網絡多輸入多輸出預測預測效果基本介紹程序設計往期精彩參考資料 預測效果 基本介紹 Matlab實現GWO-Elman灰狼優化循環神經網絡多輸入多輸出…

kernel bypass 是什么?

文章目錄 一、kernel bypass 是什么二、Kernel Bypass技術優缺點三、Kernel Bypass技術應用領域四、Kernel Bypass的實現方式 一、kernel bypass 是什么 Kernel Bypass是一種技術,旨在通過繞過操作系統核來提高網絡數據包處理的性能和降低延遲。它的主要優點是高性能…

[LeetBook]【學習日記】有序鏈表合并

21. 合并兩個有序鏈表 將兩個升序鏈表合并為一個新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 示例 1: 輸入:l1 [1,2,4], l2 [1,3,4] 輸出:[1,1,2,3,4,4] 示例 2: 輸入:l1 [], l2 [] …

如何在電腦上中恢復已刪除的視頻

您可以在電腦中恢復已刪除的視頻,無需任何繁瑣的工作。您所需要做的就是閱讀本文,了解恢復已刪除視頻的最佳方法。 一次錯誤的點擊可能會奪走您以視頻形式存儲的寶貴記憶。嗯,有些視頻不適合刪除,您希望永遠保留它們。失去這些寶…

如何使用Docker搭建StackEdit編輯器并結合內網穿透實現遠程辦公

文章目錄 前言1. ubuntu安裝VNC2. 設置vnc開機啟動3. windows 安裝VNC viewer連接工具4. 內網穿透4.1 安裝cpolar【支持使用一鍵腳本命令安裝】4.2 創建隧道映射4.3 測試公網遠程訪問 5. 配置固定TCP地址5.1 保留一個固定的公網TCP端口地址5.2 配置固定公網TCP端口地址5.3 測試…