包含python編程之數據可視化2的詞條

本文目錄一覽:

Python中數據可視化經典庫有哪些?

Python有很多經典的數據可視化庫,比較經典的數據可視化庫有下面幾個。

matplotlib

是Python編程語言及其數值數學擴展包 NumPy 的可視化操作界面。它利用通用的圖形用戶界面工具包,如 Tkinter, wxPython, Qt 或 GTK+,嚮應用程序嵌入式繪圖提供了應用程序介面。

pyplot 是 matplotlib 的一個模塊,它提供了一個類似 MATLAB 的介面。 matplotlib 被設計得用起來像 MATLAB,具有使用 Python 的能力。

優點:繪圖質量高,可繪製出版物質量級別的圖形。代碼夠簡單,易於理解和擴展,使繪圖變得輕鬆,通過Matplotlib可以很輕鬆地畫一些或簡單或複雜的圖形,幾行代碼即可生成直方圖、條形圖、散點圖、密度圖等等,最重要的是免費和開源。

pandas

Pandas 是一個開放源碼、BSD 許可的庫,提供高性能、易於使用的數據結構和數據分析工具。Pandas 廣泛應用在學術、金融、統計學等各個數據分析領域。需要說明的是它不是「熊貓」,名字衍生自術語 “panel data”(面板數據)和 “Python data analysis”(Python 數據分析)。

優點:是Python的核心數據分析支持庫,提供了快速、靈活、明確的數據結構,旨在簡單、直觀的處理關係型、標記型數據。對於數據分析專業人士,它是數據分析及可視化的利器。

seaborn

Seaborn是基於matplotlib的圖形可視化python包。它提供了一種高度互動式界面,便於用戶能夠做出各種有吸引力的統計圖表。

它是基於matplotlib更高級的API封裝,從而使得作圖更加容易,在大多數情況下使用seaborn能做出很具有吸引力的圖,應該把Seaborn視為matplotlib的補充,而不是替代物,它能高度兼容numpy與pandas數據結構以及scipy與statsmodels等統計模式。

優點:matplotlib高度封裝,代碼量少,圖表漂亮。比起matplotlib具有更美觀、更現代的調色板設計等優點。scikit-plot

這是一個跟機器學習有效結合的繪圖庫。想要深入學習的小夥伴參見其github倉庫,這裡不再贅述了。

優點:Scikit-Plot是由ReiichiroNakano創建的用在機器學習的可視化工具,能最快速簡潔的畫出用Matplotlib要寫很多行語句才能畫出的圖。關鍵是對於機器學習相關可視化處理,該庫有較好的支持。

Networkx

networkx是Python的一個包,用於構建和操作複雜的圖結構,提供分析圖的演算法。圖是由頂點、邊和可選的屬性構成的數據結構,頂點表示數據,邊是由兩個頂點唯一確定的,表示兩個頂點之間的關係。頂點和邊也可以擁有更多的屬性,以存儲更多的信息。

優點:用於創建、操縱和研究複雜網路的結構、以及學習複雜網路的結構、功能及其動力學。

上面是我的回答,希望對您有所幫助!

Python數據可視化 箱線圖

Python數據可視化:箱線圖

一、箱線圖概念

箱形圖(Box-plot)又稱為盒須圖、盒式圖或箱線圖,是一種用作顯示一組數據分散情況資料的統計圖。

計算過程:

(1)計算上四分位數(Q3),中位數,下四分位數(Q1)

(2)計算上四分位數和下四分位數之間的差值,即四分位數差(IQR,interquartile range)Q3-Q1

(3)繪製箱線圖的上下範圍,上限為上四分位數,下限為下四分位數。在箱子內部中位數的位置繪製橫線。

(4)大於上四分位數1.5倍四分位數差的值,或者小於下四分位數1.5倍四分位數差的值,劃為異常值(outliers)。

(5)異常值之外,最靠近上邊緣和下邊緣的兩個值處,畫橫線,作為箱線圖的觸鬚。

(6)極端異常值,即超出四分位數差3倍距離的異常值,用實心點表示;較為溫和的異常值,即處於1.5倍-3倍四分位數差之間的異常值,用空心點表示。

(7)為箱線圖添加名稱,數軸等

二、四分位數的計算

分位數根據其將數列等分的形式不同可以分為中位數,四分位數,十分位數、百分位數等等。四分位數作為分位數的一種形式,在統計中有著十分重要的意義和作用,而大多數的統計學原理教材只介紹其基本含義,對其具體計算,尤其是由組距數列計算都不作介紹,成為統計學原理教材中的空白。那麼,如何根據數列計算四分位數呢?一般來講,視資料是否分組而定。

1、根據未分組的資料計算四分位數

第一步:確定四分位數的位置

四分位數是將數列等分成四個部分的數,一個數列有三個四分位數,設下分位數、中分位數和上分位式中n表示資料的項數

第二步:根據第一步所確定的四分位數的位置,確定其相應的四分位數。

例1:某車間某月份的工人生產某產品的數量分別為13、13.5、13.8、13.9、14、14.6、14.8、15、15.2、15.4、15.7公斤,則三個四分位數的位置分別為:

即變數數列中的第三個、第六個、第九個工人的某種產品產量分別為下四分位數、中位 數和上四分位數。即:

Q1 =13.8公斤、Q2=14.6公斤、Q3=15.2公斤

上例中(n+1)恰好為4的倍數,所以確定四分數較簡單,如果(n+1)不為4的整數倍數,按上述分式計算出來的四分位數位置就帶有小數,這時,有關的四分位數就應該是與該小數相鄰的兩個整數位置上的標誌值的平均數,權數的大小取決於兩個整數位置距離的遠近,距離越近,權數越大,距離越遠,權數越小,權數之和等於1。

例2:某車間某月份的工人生產某產品的數量分別為13、13.5、13.8、13.9、14、14.6、14.8、15、15.2、15.4公斤,則三個四分位數的位置分別為:

即變數數列中的第2.75項、第5.5項、第8.25項工人的某種產品產量分別為下四分位 數、中位數和上四分位數。即:

在實際資料中,由於標誌值序列中的相鄰標誌值往往是相同的,因而不一定要通過計算才能得到有關的四分位數。

2、由組距式數列確定四分位數

第一步,向上或向下累計次數.

第二步,根據累計次數確定四分位數的位置.

(1)、當採用向上累計次數的資料確定四分位數時,四分位數位置的公式是:

(2)、當採用向下累計次數的資料確定四分位數時,四分位數位置的公式是:

第三步,根據四分位數的位置算出各四分位數.

(1)、當累計次數是向上累計時,按下限公式計算各四分位數.

(2)、當累計次數是向下累計時,按上限公式計算各四分位數.

例3:某企業職工按月工資的分組資料如下:

根據上述資料確定某企業職工的月工資的三個四分位數如下:

(1)、採用向上累計職工人數的資料得月工資四分位數的位置為:

(2)、採用向下累計職工人數的資料得月工資四分位數的位置為:

3、異常值

異常值:限制線以外的數據全部為異常值

三、畫圖

# Python

import plotly.plotly

import plotly.graph_objs as go

data = [

go.Box(

y=[0, 1, 1, 2, 3, 5, 8, 13, 21] # 9個數據

)

]

plotly.offline.plot(data) # 離線繪圖

Python 數據可視化:分類特徵統計圖

上一課已經體驗到了 Seaborn 相對 Matplotlib 的優勢,本課將要介紹的是 Seaborn 對分類數據的統計,也是它的長項。

針對分類數據的統計圖,可以使用 sns.catplot 繪製,其完整參數如下:

本課使用演繹的方式來學習,首先理解這個函數的基本使用方法,重點是常用參數的含義。

其他的參數,根據名稱也能基本理解。

下面就依據 kind 參數的不同取值,分門別類地介紹各種不同類型的分類統計圖。

讀入數據集:

然後用這個數據集製圖,看看效果:

輸出結果:

毫無疑問,這裡繪製的是散點圖。但是,該散點圖的橫坐標是分類特徵 time 中的三個值,並且用 hue=’kind’ 又將分類特徵插入到圖像中,即用不同顏色的的點代表又一個分類特徵 kind 的值,最終得到這些類別組合下每個記錄中的 pulse 特徵值,並以上述圖示表示出來。也可以理解為,x=’time’, hue=’kind’ 引入了圖中的兩個特徵維度。

語句 ① 中,就沒有特別聲明參數 kind 的值,此時是使用默認值 ‘strip’。

與 ① 等效的還有另外一個對應函數 sns.stripplot。

輸出結果:

② 與 ① 的效果一樣。

不過,在 sns.catplot 中的兩個參數 row、col,在類似 sns.stripplot 這樣的專有函數中是沒有的。因此,下面的圖,只有用 sns.catplot 才能簡潔直觀。

輸出結果:

不過,如果換一個叫角度來說,類似 sns.stripplot 這樣的專有函數,表達簡單,參數與 sns.catplot 相比,有所精簡,使用起來更方便。

仔細比較,sns.catplot 和 sns.stripplot 兩者還是稍有區別的,雖然在一般情況下兩者是通用的。

因此,不要追求某一個是萬能的,各有各的用途,存在即合理。

不過,下面的聲明請注意: 如果沒有非常的必要,比如繪製分區圖,在本課中後續都演示如何使用專有名稱的函數。

前面已經初步解釋了這個函數,為了格式完整,這裡再重複一下,即 sns.catplot 中參數 kind=’strip’。

如果非要將此函數翻譯為漢語,可以稱之為「條狀散點圖」。以分類特徵為一坐標軸,在另外一個坐標軸上,根據分類特徵,將該分類特徵數據所在記錄中的連續值沿坐標軸描點。

從語句 ② 的結果圖中可以看到,這些點雖然縱軸的數值有相同的,但是沒有將它們重疊。因此,我們看到的好像是「一束」散點,實際上,所有點的橫坐標都應該是相應特徵分類數據,也不要把分類特徵的值理解為一個範圍,分散開僅僅是為了圖示的視覺需要。

輸出結果:

④ 相對 ② 的圖示,在於此時同一縱軸值的都重合了——本來它們的橫軸值都是一樣的。實現此效果的參數是 jitter=0,它可以表示點的「振動」,如果默認或者 jitter=True,意味著允許描點在某個範圍振動——語句 ② 的效果;還可設置為某個 0 到 1 的浮點,表示許可振動的幅度。請對比下面的操作。

輸出結果:

語句 ② 中使用 hue=’kind’ 參數向圖中提供了另外一個分類特徵,但是,如果感覺圖有點亂,還可以這樣做:

輸出結果:

dodge=True 的作用就在於將 hue=’kind’ 所引入的特徵數據分開,相對 ② 的效果有很大差異。

並且,在 ⑤ 中還使用了 paletter=’Set2′ 設置了色彩方案。

sns.stripplot 函數中的其他有關參數,請讀者使用幫助文檔了解。

此函數即 sns.catplot 的參數 kind=’swarm’。

輸出結果:

再繪製一張簡單的圖,一遍研究這種圖示的本質。

輸出結果:

此圖只使用了一個特徵的數據,簡化表象,才能探究 sns.swarmplot 的本質。它同樣是將該特徵中的數據,依據其他特徵的連續值在圖中描點,並且所有點在默認情況下不彼此重疊——這方面與 sns.stripplot 一樣。但是,與之不同的是,這些點不是隨機分布的,它們經過調整之後,均勻對稱分布在分類特徵數值所在直線的兩側,這樣能很好地表示數據的分布特點。但是,這種方式不適合「大數據」。

sns.swarmplot 的參數似乎也沒有什麼太特殊的。下面使用幾個,熟悉一番基本操作。

在分類維度上還可以再引入一個維度,用不同顏色的點表示另外一種類別,即使用 hue 參數來實現。

輸出結果:

這裡用 hue = ‘smoker’ 參數又引入了一個分類特徵,在圖中用不同顏色來區分。

如果覺得會 smoker 特徵的值都混在一起有點亂,還可以使用下面方式把他們分開——老調重彈。

輸出結果:

生成此效果的參數就是 dodge=True,它的作用就是當 hue 參數設置了特徵之後,將 hue 的特徵數據進行分類。

sns.catplot 函數的參數 kind 可以有三個值,都是用於繪製分類的分布圖:

下面依次對這三個專有函數進行闡述。

求助編程大神,Python數據可視化,參考圖一部分代碼做出圖二的效果。

給你個例子

import numpy as np

import matplotlib.pyplot as plt

def bar2():

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

name = [“呂布”,”趙雲”,”典韋”,”關羽”,”馬超”,”張飛”,”夏侯惇”,”太史慈”]

x_index = np.arange(len(name))

width=0.35

OP=[99,96,96,93,93,92,90,89]

HP=[70,95,70,83,88,70,75,78]

plt.bar(x_index,OP,width=width,label=”攻擊力”)

plt.bar(x_index + width, HP, width=width, label=”體力”)

plt.xlabel(“武將”)

plt.ylabel(“能力值”)

plt.title(“三國志武將分析”)

plt.legend()

plt.xticks(ticks=x_index,labels=name)

plt.show()

bar2()

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/307486.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 18:06
下一篇 2025-01-02 18:16

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論