《python每天一小段》--12 數據可視化《1》

歡迎閱讀《Python每天一小段》系列!在本篇中,將使用Python Matplotlib實現數據可視化的簡單圖形。

一、概念

Matplotlib是一個流行的Python數據可視化庫,它提供了豐富的繪圖功能,可以創建各種類型的圖表,包括折線圖、散點圖、柱狀圖、餅圖等。

要查看使用matplotlib可制作的各種圖表,可訪問http://matplotlib.org/

(1)安裝matplotlib

pip install matplotlib

(2)數據可視化實現步驟

下面是對Matplotlib的詳細解釋以及如何實現數據可視化的一般步驟:

  1. 導入Matplotlib庫:
    在Python腳本中,首先需要導入Matplotlib庫。通常使用以下語句導入Matplotlib的pyplot模塊:

    import matplotlib.pyplot as plt
    
  2. 創建圖表:
    在開始繪圖之前,需要創建一個圖表對象。可以使用plt.figure()函數創建一個新的圖表。

    plt.figure()
    
  3. 繪制圖表:
    使用Matplotlib的各種繪圖函數來繪制所需的圖表。例如,使用plt.plot()函數繪制折線圖,使用plt.scatter()函數繪制散點圖,使用plt.bar()函數繪制柱狀圖等。

    x = [1, 2, 3, 4, 5]
    y = [10, 8, 6, 4, 2]
    plt.plot(x, y)
    
  4. 添加標簽和標題:
    可以使用plt.xlabel()plt.ylabel()plt.title()函數為圖表添加軸標簽和標題。

    plt.xlabel('X軸')
    plt.ylabel('Y軸')
    plt.title('折線圖')
    
  5. 自定義圖表樣式:
    可以使用各種Matplotlib函數來自定義圖表的樣式,如設置線條顏色、線型、標記樣式、圖例等。

    plt.plot(x, y, color='red', linestyle='--', marker='o', label='數據')
    plt.legend()
    
  6. 顯示圖表:
    使用plt.show()函數顯示圖表。

    plt.show()
    

以上是一個簡單的數據可視化的流程。當然,Matplotlib還提供了許多其他功能,如子圖、網格、顏色映射等,可以根據需要進行使用和定制。

除了Matplotlib,還有其他一些數據可視化工具可以使用,如Seaborn、Plotly、Bokeh等。每個工具都有其特點和適用場景,可以根據具體需求選擇合適的工具來實現數據可視化。

python代碼:

import matplotlib.pyplot as pltplt.figure()
x = [1,2,3,4,5]
y = [10,8,6,4,2]
plt.plot(x,y)
#plt.scatter(x,y)
#plt.bar(x,y)plt.title("x,y table",fontsize=24)
plt.xlabel('x軸')
plt.ylabel('y軸')plt.plot(x,y,color='red',linestyle='--',marker='o',label='數據')
plt.legend()plt.show()

生成圖表:

在這里插入圖片描述

二、繪制簡單的折線圖

(1)簡單的圖表

1、首先導入了模塊pyplot,并給它指定了別名plt,以免反復輸入pyplot

2、創建了一個列表,在其中存儲了前述平方數,再將這個列表傳遞給函數plot(),這個函數嘗試根據這些數字繪制出有意義的圖形。

3、plt.show()打開matplotlib查看器,并顯示繪制的圖形

import matplotlib.pyplot as pltsquares = [1,4,9,16,25]
plt.plot(squares)
plt.show()

圖表:

在這里插入圖片描述

(2)修改標簽文字和線條粗細

import matplotlib.pyplot as pltsquares = [1,4,9,16,25]
plt.plot(squares,linewidth=5)#設置圖標標題,并給坐標軸加上標簽
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)#設置刻度標記的大小
plt.tick_params(axis='both',labelsize=14)
plt.show()

圖標:

在這里插入圖片描述

(3)校正圖形

import matplotlib.pyplot as pltinput_values = [1,2,3,4,5]
squares = [1,4,9,16,25]
plt.plot(input_values,squares,linewidth=5)#設置圖標標題,并給坐標軸加上標簽
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)#設置刻度標記的大小
plt.tick_params(axis='both',labelsize=14)
plt.show()

在這里插入圖片描述

(4)繪制單個點

使用scatter()繪制散點圖并設置其樣式

import matplotlib.pyplot as pltplt.scatter(2,4)
plt.show()

在這里插入圖片描述

添加標題,給軸加標簽

import matplotlib.pyplot as pltplt.scatter(2,4)plt.scatter(2,4,s=200)plt.title("Square Number",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value" ,fontsize=14)#設置刻度標記的大小
plt.tick_params(axis='both',which='major',labelsize=14)plt.show

圖表:

在這里插入圖片描述

(5)繪制一系列點

要繪制一系列的點,可向scatter()傳遞兩個分別包含x值和y值的列表:

import matplotlib.pyplot as pltx_values = [1,2,3,4,5]
y_values = [1,4,9,16,25]plt.scatter(x_values,y_values,s=100)#設置圖標標題及坐標軸指定標簽plt.title("Square Number",fontsize=24)
plt.title("Value",fontsize=14)
plt.title("Square of Value",fontsize=14)#設置刻度標記大小
plt.tick_params(axis='both',which='major',labelsize=14)
plt.show()

圖表:

在這里插入圖片描述

(6)自動計算

手工計算列表要包含的值可能效率低下,需要繪制的點很多時尤其如此。可以不必手工計算
包含點坐標的列表,而讓Python循環來替我們完成這種計算。下面是繪制1000個點的代碼:

import matplotlib.pyplot as pltx_values = list(range(1,1001))
y_values = [x**2 for x in x_values]plt.scatter(x_values,y_values,s=40)#設置圖標并給坐標軸加上標簽
plt.title("Square Number",fontsize=24)
plt.title("Value",fontsize=14)
plt.title("Square of Value",fontsize=14)#設置刻度標記大小
plt.tick_params(axis='both',which='major',labelsize=14)#設置每個坐標軸的取值范圍
plt.axis([0,1100,0,1100000])plt.show()

圖表:

在這里插入圖片描述

(7)刪除數據點的輪廓

matplotlib允許你給散點圖中的各個點指定顏色。默認為藍色點和黑色輪廓,在散點圖包含的數據點不多時效果很好。但繪制很多點時,黑色輪廓可能會粘連在一起。

要刪除數據點的輪廓,可在調用scatter()時傳遞實參:edgecolor='none'

plt.scatter(x_values,y_values,edgecolor='none',s=40)

在這里插入圖片描述

(8)修改顏色

修改數據點的顏色,可向scatter()傳遞參數c,并將其設置為要使用的顏色的名稱

plt.scatter(x_values,y_values,c='red',edgecolor='none',s=40)

圖表:

在這里插入圖片描述

(9)自定義顏色

使用RGB顏色模式自定義顏色。要指定自定義顏色,可傳遞參數c,并將其設置為一個元組,其中包含三個0~1之間的小數值,它們分別表示紅色、綠色和藍色分量。

plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolor='none',s=40)

圖表:

創建一個由淡藍色點組成的散點圖:

在這里插入圖片描述

值越接近0,指定的顏色越深,值越接近1,指定的顏色越淺

(10)顏色映射

顏色映射(colormap)是一系列顏色,它們從起始顏色漸變到結束顏色。在可視化中,顏色映射用于突出數據的規律,例如,你可能用較淺的顏色來顯示較小的值,并使用較深的顏色來顯示較大的值。

模塊pyplot內置了一組顏色映射。要使用這些顏色映射,你需要告訴pyplot該如何設置數據集中每個點的顏色。下面演示了如何根據每個點的y值來設置其顏色:

plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolor='none',s=40)

圖表:

在這里插入圖片描述

將參數c設置成了一個y值列表,并使用參數cmap告訴pyplot使用哪個顏色映射,代碼將y值較小的點顯示為淺藍色,并將y值較大的點顯示為深藍色。

要了解pyplot中所有的顏色映射,請訪問http://matplotlib.org/,單擊Examples,向下滾動到Color Examples,再單擊colormaps_reference。

(11)自動保存

要讓程序自動將圖表保存到文件中,可將對plt.show()的調用替換為對plt.savefig()的調用

plt.savefig("squares.plot.png",bbox_inches='tight')

在這里插入圖片描述

參考引用《Python從入門到實踐》

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

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

相關文章

Spring框架學習:Bean生命周期

目錄 SpringBean的生命周期 Bean實例屬性填充 三級緩存 常用的Aware接口 Spring IoC容器實例化Bean總結 SpringBean的生命周期 Spring Bean的生命周期是從 Bean 實例化之后,即通過反射創建出對象之后,到Bean成為一個完整對象,最終存儲到…

【MyBatis系列】MyBatis字符串問題

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

SpringBoot + Spring Cloud Alibaba + Nacos實現服務管理

1、參考文檔 Spring Cloud Alibaba參考文檔 https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/zh-cn/index.html Spring Cloud Alibaba官方文檔 https://github.com/alibaba/spring-cloud-alibaba/wiki/ 2、引入 Alibaba 依賴 每個 SpringBoot 都有對應的…

css中2D和3D的區別

CSS中2D和3D的主要區別在于: 維度不同:2D是二維平面,3D是三維空間。可視角度不同:2D只能從一個平面角度看,而3D可以在多個角度上觀察。技術難度不同:3D效果需要更復雜的技術支持,如矩陣變換&am…

javascript實現Stack(棧)數據結構

上一篇文章我們理解了List這種數據結構,知道了它的特點和一些使用場景,這篇文章我們就來看一下棧這種數據結構,這里的棧可不是客棧哦,哈哈 棧其實和List非常像,使用javascript實現都是基于數組來實現 嘗試理解Stack …

6種常見的JS模塊打包器

前言 JS模塊打包器是一種工具,它可以將多個JS文件或模塊合并成一個或多個輸出文件,以便在瀏覽器或其他環境中使用。 JS模塊打包器的作用有: 優化代碼:通過壓縮、混淆、刪除無用代碼等方式,減少代碼的體積和復雜度&…

windows系統和虛擬機上ubuntu系統通過虛擬串口進行通信

本文的目的是實現windows系統和虛擬機上安裝的ubuntu通過串口進行通信。為了直觀觀測串口收發數據的內容,需要在windows系統和ubuntu系統使用串口助手來進行監聽。windows系統端用的監聽工具是串口助手SSCOM,ubuntu系統端使用的串口助手是CuteCom。 ubu…

OpenCL學習筆記(一)開發環境搭建(win10+vs2019)

前言 異構編程開發,在高性能編程中有重要的,筆者本次只簡單介紹下,如何搭建簡單的開發環境,可以供有需要的小伙伴們開發測試使用 一、獲取opencl的sdk庫 1.使用cuda庫 若本機有Nvidia的顯卡,在安裝cuda庫后&#x…

如何提高大模型在超長上下文的表現?Claude實驗表明加一句prompt立即提升效果~

本文來自DataLearnerAI官方網站:如何提高大模型在超長上下文的表現?Claude實驗表明加一句prompt立即提升效果~ | 數據學習者官方網站(Datalearner)https://www.datalearner.com/blog/1051701947131881 Claude 2.1版本的模型上下文長度最高拓展到200K&am…

【Flink系列四】Window及Watermark

3.1、window 在 Flink 中 Window 可以將無限流切分成有限流,是處理有限流的核心組件,現在 Flink 中 Window 可以是時間驅動的(Time Window),也可以是數據驅動的(Count Window)。 Flink中的窗口…

c jpeg YUV圖片幀分割成 8*8 塊 ,與逆向把8*8還原為幀

1. 正向分割為若干8*8 塊 下面的程序為通用程序&#xff0c;可以分割任意塊 #include <stdlib.h> #include <string.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h>…

如果微軟20年前開發.net core,JAVA會不會和IE一樣倒下了

可以跨平臺&#xff0c;大量類庫&#xff0c;微軟親自操刀&#xff0c;性能一流&#xff0c;因為沒有做跨平臺&#xff0c;.NET被 python,javascript等搶了一半以上市場。 如果微軟早早的推出類似.net core這樣的跨平臺語言&#xff0c;.net程序猿還會出在這樣的尷尬局面嗎眾所…

Java基礎-開發流程以及HelloWorld程序

目錄 1. Java的開發流程2. HelloWorld 1. Java的開發流程 開發Java程序&#xff0c;需要三個步驟&#xff1a;編寫代碼&#xff0c;編譯代碼&#xff0c;運行代碼 2. HelloWorld 編寫代碼 public class HelloWorld {public static void main(String[] args) {System.out.pri…

Ribbon 饑餓加載

Ribbon默認是采用懶加載&#xff0c;即第一次訪問時才會去創建LoadBalanceClient&#xff0c;請求時間會很長而饑餓加載則會在項目啟動時創建&#xff0c;降低第一次訪問的耗時&#xff0c;通過下面配置開啟饑餓加載: 一、懶加載 Ribbon 默認為懶加載即在首次啟動Application…

代碼隨想錄二刷 |二叉樹 | 二叉樹的層序遍歷

代碼隨想錄二刷 &#xff5c;二叉樹 &#xff5c; 二叉樹的層序遍歷 題目描述解題思路代碼實現 題目描述 102.二叉樹的層序遍歷 給你二叉樹的根節點 root &#xff0c;返回其節點值的 層序遍歷 。 &#xff08;即逐層地&#xff0c;從左到右訪問所有節點&#xff09;。 示例…

Flask 最佳實踐(一)

Flask是一個輕量級而強大的Python Web框架&#xff0c;它的簡潔性和靈活性使其成為許多開發者的首選。然而&#xff0c;為了確保項目的可維護性和可擴展性&#xff0c;我們需要遵循一些最佳實踐。本文將探討Flask中一些關鍵的最佳實踐。 1. 項目結構 構建一個清晰的項目結構是…

Java實現Socket聊天室

一、網絡編程是什么&#xff1f; 在網絡通信協議下&#xff0c;不同計算機上運行的程序&#xff0c;進行數據傳輸。 應用場景&#xff1a;即時通訊、網游對戰、金融證券、國際貿易、郵件、等等。 不管是什么場景&#xff0c;都是計算機與計算機之間通過網絡進行數據傳輸。 …

軟件測試之接口測試自動化(詳解版)

本著以和大家交流如何實現高效的接口測試為出發點&#xff0c;本文包含了我在接口測試領域的一些方法和心得&#xff0c;希望大家一起討論和分享&#xff0c;內容包括但不僅限于&#xff1a; 服務端接口測試介紹接口測試自動化介紹接口測試自動化實踐關于接口測試自動化的思考…

質量工程化,交付快速化

質量和速度之間權衡讓人很難取舍&#xff0c;而通過推進質量工程&#xff0c;以系統化的方式識別和優化系統痛點&#xff0c;可以幫助團隊構建既快又好的精益軟件生產系統。原文: Quality Engineered, Speed Delivered 所有人都想要更快的速度。 但需要解決復雜問題: 權衡質量會…

Kotlin(十四) 擴展函數和運算符重載

目錄 擴展函數 語法結構 代碼示例 運算符重載 語法結構 一元操作符 二元操作符 數值類型操作符 等于和不等于操作符 比較操作符 調用操作符 擴展函數 語法結構 對于擴張函數的語法結構其實很簡單&#xff0c;你想在那個類中添加擴張函數&#xff0c;那么你就用該類…