最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python數據分析中的多種圖形繪制示例(折線圖、柱狀圖、餅狀圖、散點圖、熱力圖)

 更新時間:2026年03月14日 16:31:22   作者:鮮于言悠905  
本文介紹了數據可視化的基礎和Python中常用的Matplotlib和Seaborn庫,通過實例演示了如何使用Matplotlib繪制折線圖、散點圖、柱狀圖、箱線圖和餅狀圖,并展示了如何組合這些圖形

前言

數據可視化是指利用圖形、表格、圖表等方式將數據展示出來,使得數據更加清晰、易于理解和分析。圖形繪制是數據可視化的基礎,通過繪制各種圖形呈現(xiàn)數據,可以更加直觀地了解數據之間的關系和趨勢。

如果畫圖過程中出現(xiàn)FutureWaring問題

import warning
warnings.filterwarnings('ignore')

針對中文不顯示

plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

在當今數字化時代,數據分析已成為各行各業(yè)中不可或缺的一環(huán)。Python,作為數據分析領域的明星語言,憑借其強大的數據處理能力和豐富的庫資源,正逐漸受到越來越多數據分析師的青睞。而在數據分析的過程中,數據可視化作為直觀展示數據特征和規(guī)律的重要手段,更是不可或缺。

Python中,有許多專門用于數據可視化的庫,其中最為著名的莫過于MatplotlibSeabornMatplotlib作為Python中最早的數據可視化庫,提供了豐富的繪圖函數和靈活的配置選項,可以滿足大部分基本的繪圖需求。而Seaborn則是在Matplotlib的基礎上,進一步封裝和優(yōu)化,提供了更加美觀和高級的繪圖接口。

在圖形繪制基礎方面,我們需要掌握幾個核心概念,包括坐標軸、圖例、標題、標簽等。坐標軸是圖表的基礎,用于展示數據的分布情況;圖例用于區(qū)分不同系列的數據;標題和標簽則用于說明圖表的主題和內容。

接下來,我們通過幾個簡單的例子來演示如何使用Matplotlib進行基本的圖形繪制。

我們使用Matplotlib來繪制一個簡單的折線圖。假設我們有一組關于某公司股票價格的數據,我們可以通過折線圖來展示股票價格的走勢。在Matplotlib中,我們可以使用plot()函數來繪制折線圖,通過設置x軸和y軸的數據,以及圖表的標題、坐標軸標簽等參數,就可以生成一個基本的折線圖。

當然,除了折線圖和箱線圖之外,還有許多其他類型的圖形可以用于數據可視化,如柱狀圖、散點圖、餅圖等。每種圖形都有其適用的場景和優(yōu)缺點,需要根據具體的數據特征和需求來選擇合適的圖形類型。

一、圖形繪制基礎

Matplotlib簡介

Matplotlib是目前應用最為廣泛的python擴展繪圖模塊庫,是Python中最受歡迎的數據可視化軟件包之一。Matplotlib支持跨平臺運行,能讓使用者很輕松地將數據轉化為高質量圖形,并且提供了多樣化的輸出格式,常用于繪制2D圖形,同時也提供了一部分3D繪圖接口。

Matplotlib提供了類似于MATLAB的繪圖函數,對于熟悉MATLAB的使用者來說,可以很容易的使用它。Matplotlib通常與NumPypandas擴展包一起使用,最常見的使用方式是根據NumPy庫的N維數組類型ndarray來繪制2D圖像,使用簡單、代碼清晰易懂,深受廣大技術愛好者的喜愛,是數據分析中不可或缺的重要工具之一。

使用過程

使用pylabpyplot繪圖時一般過程為:首先讀入數據,然后根據實際需要繪制折線圖、散點圖、柱狀圖、餅狀圖、雷達圖或三維曲線和曲面,接下來設置軸和圖形屬性,最后顯示或保存繪圖結果。

sin函數示例

【例7.1】請利用python繪制正弦函數曲線。

關鍵技術:采用MatplotlibPyplot模塊的plot函數繪制曲線圖。

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import math
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
x = np.arange(0,math.pi*2,0.05)
y = np.sin(x)
plt.plot(x,y)
plt.xlabel("angle")
plt.ylabel("sine")
plt.title("sine curve")
plt.show()


二、常用圖形繪制

折線圖的繪制

折線圖是最基本的圖表類型,是用點和點之間連線的上升或下降表示指標的連續(xù)變化趨勢。折線圖反映了一段時間內事物連續(xù)的動態(tài)變化規(guī)律,適用于描述一個變量隨另一個變量變化的趨勢,通常用于繪制連續(xù)數據,適合數據點較多的情況。

plot

matplotlib是一個用于繪制圖形的Python庫,其中的plot函數用于繪制線條圖。下面是matplotlibplot函數的詳細解釋:

plot(x, y, label, linestyle, color, linewidth, marker)

參數說明:

  • x:表示x軸上的數據序列,可以是一個列表、數組或Series類型的數據,也可以是一個數字,此時表示生成從0到該數字的等間隔的數據序列。
  • y:表示y軸上的數據序列,要求與x軸上的數據序列長度相同。
  • label:給繪制的線條指定一個標簽,可以在繪制圖例時使用。
  • linestyle:線條的樣式,可以是實線(‘solid’)、虛線(‘dashed’)、點線(‘dotted’)等,默認為實線。
  • color:線條的顏色,可以是一個關鍵字字符串(如’red’、'blue’等),也可以是一個RGB元組表示的顏色(如(0.1, 0.2, 0.3)),默認為藍色。
  • linewidth:線條的寬度,可以是一個數字,默認為1。
  • marker:線條上的標記點的樣式,可以是一個關鍵字字符串(如’+'、‘o’等),也可以是一個標記字符(如’x’、's’等),默認為沒有標記點。

使用plot函數可以繪制不同樣式的線條圖,可以通過設置不同的參數來定制線條的樣式、顏色、寬度、標記點等。在繪制完所有的線條后,可以使用plt.legend()函數來添加圖例,使得不同線條對應的標簽在圖中顯示出來。

示例

【例7.4】請根據給定的兩組數據xy,分別代表某城鎮(zhèn)居民消費水平增長率和對應的年份,利用Python繪制城鎮(zhèn)居民消費水平增長率折線圖。

關鍵技術:利用matplotlib包的plot方法進行折線圖的繪制。

y = [8.07,6.42,9.79,8.20,7.69,6.02,7.86,6.93,6.84,9.04,10.06]
x= [2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020]
plt.plot(x,y,'g',lw = 4,label = '城鎮(zhèn)居民消費水平增長率')
plt.legend(loc = 5)
plt.grid(True)
plt.xlabel("年")
plt.ylabel('增長率')
plt.title("我國歷年城鎮(zhèn)消費水平增長率")


散點圖的繪制

散點圖是以直角坐標系中各點的密集程度和變化趨勢來表示兩種現(xiàn)象間的相關關系,常用于顯示和比較數值。當要在不考慮時間的情況下比較大量數據點時,使用散點圖比較數據方便直觀。散點圖將序列顯示為一組點,其中每個散點值都由該點在圖表中的坐標位置表示。對于不同類別的點,則由圖表中不同形狀或顏色的標記符表示。同時,也可以設置標記符的顏色或大小。

scatter()

scattermatplotlib庫中用于繪制散點圖的函數。散點圖是一種用于展示兩個變量之間關系的圖形,其中每個點代表一個數據樣本。

scatter函數可以接受一系列的xy坐標作為輸入,然后將這些坐標在圖中繪制成散點。

下面是scatter函數的基本用法:

import matplotlib.pyplot as plt

# 準備散點的x和y坐標
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 繪制散點圖
plt.scatter(x, y)

# 顯示圖形
plt.show()

這段代碼會生成一個簡單的散點圖,其中x坐標為1, 2, 3, 4, 5y坐標為2, 4, 6, 8, 10。

scatter函數還可以接受一些常用的參數,用于調整散點圖的樣式和外觀,例如:

  • s:設置散點的大小。可以傳入一個常數,表示所有散點的大?。灰部梢詡魅胍粋€數組,表示每個散點的大小。
  • c:設置散點的顏色??梢詡魅胍粋€常數,表示所有散點的顏色;也可以傳入一個數組,表示每個散點的顏色。
  • marker:設置散點的形狀??梢詡魅胍粋€字符,表示所有散點的形狀;也可以傳入一個數組,表示每個散點的形狀。
  • alpha:設置散點的透明度。

下面是一個示例代碼,展示了如何使用這些參數調整散點圖的樣式:

import matplotlib.pyplot as plt
import numpy as np

# 生成隨機數據
np.random.seed(0)
x = np.random.randn(100)
y = np.random.randn(100)

# 繪制散點圖,設置散點的大小、顏色和形狀
plt.scatter(x, y, s=50, c='r', marker='o', alpha=0.5)

# 顯示圖形
plt.show()

這段代碼會生成一個具有隨機數據的散點圖,散點的大小為50,顏色為紅色,形狀為圓形,透明度為0.5。

除了基本的用法和常用參數,scatter函數還有其他一些參數,用于進一步控制散點圖的樣式和外觀,例如:

  • edgecolors:設置散點邊緣的顏色。
  • linewidths:設置散點邊緣的寬度。
  • cmap:設置顏色映射,用于根據數值變化為散點著色。
  • norm:設置歸一化器,用于歸一化數值。
  • label:設置散點圖的標簽,用于圖例顯示。

可以參考Matplotlib官方文檔獲取更多關于scatter函數的詳細說明和示例代碼。

示例

【例7.5】對于給定的兩個市場收益率的波動情況數據xy,請利用Python繪制散點圖來反映兩個市場的波動率情況。

關鍵技術:利用matplotlib包的plot函數進行散點圖的繪制,與繪制折線圖相比,繪制散點圖只用到一組數據,而繪制折線圖需要用到兩組對應的數據。

x = np.random.randint(0,5,10)
y = np.random.randint(0,5,10)
plt.figure(figsize = (10,10))
plt.subplot(121)
plt.ylim((-5,5))
plt.plot(x,'ro',label = '第一組')
plt.grid(True)
plt.title('第一組市場波動情況')
plt.subplot(122)
plt.ylim((-5,5))
plt.plot(y,'b*',label = '第二組')
plt.grid(True)
plt.title('第二組市場波動情況')
plt.savefig('test',dpi = 600)
plt.show()


柱狀圖的繪制

bar

matplotlibbar函數用于繪制柱狀圖,它是一個非常常用的數據可視化工具。

下面是bar函數的詳細介紹:

語法:

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, align='center', data=None, **kwargs)

參數:

  • x:柱狀圖的x軸位置,可以是一個數值或者一個數組,表示每個柱狀圖的位置。
  • height:柱狀圖的高度,可以是一個數值或者一個數組,表示每個柱狀圖的高度。
  • width:柱狀圖的寬度,默認值為0.8。
  • bottom:柱狀圖的底部位置,默認為None,表示從0開始繪制柱狀圖。
  • align:柱狀圖的對齊方式,默認為’center’,表示柱狀圖的中心與給定位置對齊。
  • data:傳入一個DataFrame或者一個類似結構的數據集,xheight參數可以直接從data中獲取。

其他常用參數:

  • color:柱狀圖的顏色,可以是一個字符串,表示柱狀圖顏色的名稱,也可以是一個列表,表示每個柱狀圖的顏色。
  • edgecolor:柱狀圖的邊框顏色,默認為None,表示不顯示邊框。
  • label:柱狀圖的標簽,可以在圖例中顯示。
  • tick_label:柱狀圖的刻度標簽,可以在x軸上顯示。
  • alpha:柱狀圖的透明度,取值范圍為0到1。

用例:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(5)
y = [1, 4, 3, 2, 5]
plt.bar(x, y, color='blue', align='center')

plt.xlabel('x')
plt.ylabel('y')
plt.title('Bar Chart')
plt.show()

此代碼將繪制一個簡單的柱狀圖,x軸是0到4,y軸是給定的數組y的值。柱狀圖的顏色為藍色,對齊方式為居中。在圖像的x軸標簽、y軸標簽和標題上顯示對應的文字。最后調用plt.show()來顯示圖像。

以上提供了matplotlibbar函數的詳細介紹和一個簡單的用例。通過使用不同的參數和組合,您可以根據自己的需求繪制出各種類型的柱狀圖。

示例

【例7.7】對于給定的2020年9月至2021年3月期間某基金產品發(fā)行數量的數據,該數據以字典形式存儲,形式如下所示。請利用Python將其以柱狀圖的形式繪制出來。

{'202009': 2324,'202010': 2814,'202011': 2525,'202012':2946,'202101': 3019,'202102': 2087,'202103': 3398}

關鍵技術:可以利用Python的matplotlib包的bar方法進行柱狀圖繪制。

dict = {'202009': 2324,'202010': 2814,'202011': 2525,'202012': 2946,'202101': 3019,'202102': 2087,'202103': 3398}
plt.figure (figsize= (9,5) )
plt.bar (dict.keys (),dict.values (),width=0.3, align='center' , label=' funds')
plt.grid (True)
plt.legend (loc=1)
plt.xlabel ('月')
plt.ylabel('發(fā)行數量')
plt.title('基金產品發(fā)行數量')
plt.savefig ( 'test', dpi=600)

箱型圖繪制

plot.box

plot.boxmatplotlib庫中的一個函數,用于繪制箱線圖。箱線圖是一種統(tǒng)計圖表,用于展示一組數據的分布情況。它顯示了數據的中位數、上下四分位數、最小值和最大值,以及異常值。

箱線圖可以幫助我們了解數據的偏態(tài)、離散度和異常值情況。

plot.box的基本語法為:

matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=False, showmeans=False, showcaps=True, showbox=True, showfliers=True, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False, zorder=None)

參數說明:

  • x:要繪制箱線圖的數據,可以是一個一維數組或一個二維數組。
  • notch:箱線圖的缺口,默認為None。
  • sym:異常值的標記,默認為None。
  • vert:箱線圖的方向,默認為True(垂直方向),設置為False可以繪制水平方向的箱線圖。
  • whis:決定繪制箱線圖上下邊界的位置,默認為1.5。
  • boxprops:箱線圖的屬性設置,包括顏色、線寬等,默認為None。
  • flierprops:異常值的屬性設置,默認為None。
  • medianprops:中位數的屬性設置,默認為None
  • meanprops:均值的屬性設置,默認為None。
  • capprops:邊界線的屬性設置,默認為None。
  • whiskerpropswhisker的屬性設置,默認為None。
  • manage_xticks:是否自動管理x軸的刻度,默認為True。
  • autorange:是否自動確定y軸的范圍,默認為False。
  • zorder:圖層順序,默認為None。

除了以上參數,plot.box還可以接受一些其他參數,用于設置標題、坐標軸標簽、圖例等。詳細的參數說明可以參考matplotlib官方文檔。

下面是一個簡單的示例代碼,演示如何使用plot.box繪制箱線圖:

import matplotlib.pyplot as plt
import numpy as np

# 生成一組隨機數據
np.random.seed(123)
data = np.random.normal(0, 1, 100)

# 繪制箱線圖
plt.boxplot(data)

# 添加標題和坐標軸標簽
plt.title('Box Plot')
plt.xlabel('Data')

# 顯示圖形
plt.show()

運行以上代碼,會生成一個簡單的箱線圖,顯示了隨機數據的中位數、上下四分位數、最小值和最大值,以及異常值(如果有)。

除了上述的示例代碼,plot.box還可以接受一維或二維的數據作為參數,用于繪制多組數據的箱線圖??梢酝ㄟ^設置參數來修改箱線圖的樣式,如顏色、線寬等。此外,還可以使用matplotlib的其他函數和方法來進一步自定義繪圖。

示例

【例7.8】下面給定的數據是某公司產品在各個國家用戶的消費分布圖,請根據以下數據利用Python繪制箱型圖。

'Japan': [1200, 1300, 1500, 1400, 1600, 1600, 1800, 1800, 1900, 2400],
'USA': [1200, 1350, 1400, 1500, 1660, 1800, 1700, 1900, 2100, 2000],
'Russia': [1100, 1200, 1200, 1400, 1300, 1600, 1700, 1900, 1900, 1800],
"Korean": [1200, 1100, 1000, 1300, 1200, 1500, 1600, 1700, 1800, 1800]

關鍵技術:可以利用Python的plot.box繪制箱型圖。

data = {'Japan': [1200,1300,1500,1400,1600,1600,1800,1800,1900,2400],
'USA': [1200, 1350, 1400, 1500, 1660, 1800, 1700, 1900, 2100, 2000],
'Russia': [1100, 1200, 1200, 1400, 1300, 1600, 1700, 1900, 1900, 1800],
"Korean": [1200, 1100, 1000, 1300, 1200, 1500, 1600, 1700, 1800, 1800]}
df = pd.DataFrame(data)
df.plot.box(title  = "某公司產品各個國家用戶消費分布圖")
plt.grid(linestyle = '--',alpha = 0.3)
plt.savefig('test',dpi = 600)
plt.show()

餅狀圖的繪制

pie

matplotlib中,可以使用pie函數繪制餅圖。餅圖用于展示各類別的占比關系,適用于數據的相對比較。下面是使用pie函數繪制餅圖的詳細步驟和參數說明。

導入庫:

import matplotlib.pyplot as plt

準備數據:

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]

繪制餅圖:

plt.pie(sizes, labels=labels)
plt.show()

繪制餅圖時,主要使用了兩個參數:

  • sizes:代表各類別的占比值,要求是一個一維數組或列表。
  • labels:代表各類別的標簽,要求是一個與sizes長度相同的一維數組或列表??蛇x參數,默認值為None。

除此之外,還可以使用其他一些參數進行餅圖的個性化設置,比如:

  • autopct:控制餅圖中百分比的顯示方式??蛇x參數,默認值為None??梢允褂米址袷娇刂骑@示,例如'%.1f%%'表示保留一位小數的百分比。
  • explode:控制各類別之間的間隔。可選參數,默認值為None??梢允褂靡痪S數組或列表來指定各類別的偏移量,例如[0, 0.1, 0, 0]表示第二個類別偏移0.1。
  • colors:控制各類別的顏色??蛇x參數,默認值為None??梢允褂靡痪S數組或列表來指定顏色,例如['red', 'blue', 'green', 'yellow']
  • startangle:控制餅圖的起始角度,逆時針方向。可選參數,默認值為0。
  • shadow:控制是否顯示陰影??蛇x參數,默認值為False。

下面是一個綜合使用了上述參數的例子:

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
explode = [0, 0.1, 0, 0]
colors = ['red', 'blue', 'green', 'yellow']

plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%.1f%%', startangle=90, shadow=True)
plt.axis('equal')
plt.show()

通過調整上述參數,可以根據具體需求繪制出個性化的餅圖。

示例

【例7.9】某公司有A、B、C、D、E五種商品,每種商品占有的市場份額分別為15%、30%、30%、10%和15%,請利用Python的餅狀圖繪制上述數據的分布圖。

關鍵技術:可以利用Python的matplotlib包中的pie函數繪制餅狀圖。

import pandas as pd
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D', 'E']
x = [15,30,30,10,15]
plt.pie(x, labels=labels)
plt.savefig('test',dpi=600)
plt.show ()

三、圖形繪制的組合情況

多個折線圖的組合繪制

示例

【例7.10】給定時間范圍在2009年至2017年間兩種商品的市場銷售價格增長率數據集data1, data2。請利用Python的折線圖將兩種商品價格的增長率信息進行繪制,反映到圖上。

關鍵技術:可以利用matplotlib包的plot函數進行多折線圖的繪制。

data1 = np.random.randint(0,20,9)
data2 = np.random.randint(0,20,9)
year=[2009,2010,2011,2012,2013,2014,2015,2016,2017]
plt.plot(year,data1,lw=3,label='sales price increase rate')
plt.plot(year,data2,'r--',lw=3,label='construction costs increase rate')
plt.legend(loc=0)
plt.grid(True)
plt.xlabel('Year')
plt.ylabel('Percentage')
plt.title('sales price/construction costs increase rates')

折線圖和散點圖的組合繪制

示例

【例7.11】給定某只股票從2021年12月31日到2022年1月11日的收盤價格,請利用Python的折線圖和散點圖組合圖形式進行數據的繪制。

關鍵技術:可以利用Python的plot函數進行繪制。

data = np.random.randint(10,20,7)
date = ['12/31/2021','04/01/2022','05/01/2022','06/01/2022','07/01/2022','10/01/2022','11/01/2022']
plt.figure(figsize=(7,4))
plt.plot(date,data,'b',label='stock xxxxxx')
plt.plot(date,data,'ro')
plt.grid(True)
plt.legend(loc=0)
plt.xlabel('日期')
plt.ylabel('收盤價')
plt.title('close price of stock xxxxx')

柱狀圖與折線圖的組合繪制

示例

【例7.11】 【例7.12】已知給定的某股票在2021年12月14日至2021年12月28日的收盤價格和交易量,請利用Python繪制雙坐標軸圖,其中左坐標軸反映交易量,以柱狀圖表示;右坐標軸反映成交價格,以折線圖表示。

close=[22.23,22.59,22.36,22.47,22.85,22.79,22.76,23.82,23.97,
5.38,25.5]
date=['12/14/2021','12/15/2021','12/16/2021','12/17/2021','12/21/2021',
      '12/22/2021','12/23/2021','12/24/2021','12/25/2021','12/26/2021','12/21/2021']
vol=[34711261,35634241,40123423,39043212,45983023,429012,37584231,30029832,4039221,5023281,5598231]
fig,ax1=plt.subplots()
plt.bar(date,vol,width=0.3,label='交易量')
plt.legend(loc=1)
plt.xlabel('日 期')
plt.ylabel('交易量')
plt.title('stock xxxxxx')
plt.xticks(rotation = 60)
ax2=ax1.twinx()
plt.plot(close,'r',lw=2,label='收盤價')
plt.grid(True)
plt.legend(loc=8)
plt.ylabel('收盤價')
plt.savefig('test', dpi=600 , pad_inches='tight')

四、拓展

熱力圖

熱力圖是一種可視化數據的圖表方式,通過不同顏色的區(qū)塊來表示數據的密度或強度。熱力圖通常用于顯示熱點、密度分布或者數據趨勢。

在熱力圖中,顏色的深淺表示數據的強度或頻率,通常深色表示高強度或高頻率,淺色表示低強度或低頻率。通過觀察熱力圖的顏色變化,可以直觀地發(fā)現(xiàn)數據的分布情況或趨勢。

熱力圖可以用于各種領域,例如地理信息系統(tǒng)(GIS)、流量分析、市場研究等。在地理信息系統(tǒng)中,熱力圖可以用來顯示人口密度、空氣質量、交通流量等信息。在流量分析中,熱力圖可以用來顯示用戶活躍度、點擊量等數據。在市場研究中,熱力圖可以用來顯示產品銷售熱點、用戶偏好等信息。

繪制熱力圖可以使用各種工具和編程語言,例如Python的matplotlib庫、R語言的ggplot2包等。這些工具提供了豐富的功能和選項,可以根據具體需求進行定制。

heatmap

seaborn是一個基于matplotlib的數據可視化庫,它提供了許多簡潔而美觀的繪圖函數。seaborn中的heatmap()函數用于繪制熱力圖,熱力圖可以用來可視化矩陣或數據表中數值的大小和分布。

下面是一個使用heatmap()函數繪制熱力圖的示例代碼:

import seaborn as sns
from  matplotlib import  pyplot as plt

# 創(chuàng)建矩陣或數據表
data = [[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]

# 繪制熱力圖
sns.heatmap(data)

# 顯示圖表
plt.show()

運行代碼后,將會彈出一個窗口顯示繪制的熱力圖。默認情況下,heatmap()函數將根據數據的值自動選擇顏色漸變,并在圖表中顯示顏色條以表示值的大小。你還可以通過設置參數來自定義熱力圖的樣式和屬性,例如調整顏色映射、添加標簽、設置標題等。具體的參數設置可以參考seaborn的官方文檔。

改變數據采樣頻率

resample

matplotlib中,resample是一個用于改變數據采樣頻率的函數。它可以用于將數據從高頻率采樣轉換為低頻率采樣,或者從低頻率采樣轉換為高頻率采樣。這個函數可以用于處理時間序列數據,通過平均、求和等方式來對數據進行采樣。

resample函數的基本語法如下:

resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, limit=None, kind=None, convention=None)

其中,rule參數用于指定新的采樣頻率,可以是字符串形式的時間間隔,比如’1D’代表每天采樣一次,'1H’代表每小時采樣一次,也可以是整數形式的數字,代表每個指定數量的樣本進行一次采樣。

  • how參數用于指定進行采樣時使用的聚合函數,比如’mean’代表計算均值,'sum’代表計算總和。

  • axis參數用于指定進行采樣的軸,默認是0,表示對行進行采樣。

  • fill_method參數用于指定進行采樣時缺失數據的填充方式。

  • closedlabel參數用于指定進行采樣時邊界的處理方式。

  • limit參數用于指定進行采樣時最大允許的缺失樣本數量。

  • kind參數用于指定進行采樣時的插值方式。

  • convention參數用于指定進行采樣時的約定方式。

示例

下面是一個使用resample函數對時間序列數據進行重新采樣的例子:

import matplotlib.pyplot as plt
import pandas as pd

# 創(chuàng)建一個DataFrame對象,包含時間序列數據
data = pd.DataFrame({'value': [1, 2, 3, 4, 5]}, index=pd.date_range(start='2022-01-01', periods=5, freq='D'))

# 將數據從每天采樣一次轉換為每兩天采樣一次
resampled_data = data.resample('2D').mean()

# 打印結果
print(resampled_data)

執(zhí)行上述代碼,將會得到如下輸出:

            value
2022-01-01    1.5
2022-01-03    4.5

這里使用了resample函數將每天采樣一次的數據轉換為每兩天采樣一次的數據,并使用均值方式進行采樣。所以結果中的第一個值為前兩天的數據的均值((1+2)/2=1.5),第二個值為后兩天的數據的均值((4+5)/2=4.5)。

創(chuàng)建多個子圖

subplots()

matplotlib.pyplot.subplots函數是用于創(chuàng)建多個子圖的工具。它返回一個包含所有子圖的Figure對象和一個包含所有子圖軸對象的Axes對象數組。

subplots函數的一般語法如下:

fig, axes = plt.subplots(nrows=1, ncols=1, figsize=None, ...)

參數說明:

  • nrows:子圖的行數。
  • ncols:子圖的列數。
  • figsize:一個元組,指定圖形的寬度和高度。

例如,如果我們要創(chuàng)建一個包含兩行兩列的子圖,可以這樣做:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=2, ncols=2)

然后,我們可以使用axes數組中的元素來操作每個子圖軸對象。例如,可以使用axes[0, 0]表示第一個子圖的軸對象。

以下是一個完整的示例:

import numpy as np
import matplotlib.pyplot as plt

# 創(chuàng)建一個包含兩行兩列的子圖
fig, axes = plt.subplots(nrows=2, ncols=2)

# 生成一些隨機數據
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.exp(x)

# 在每個子圖中繪制不同的函數
axes[0, 0].plot(x, y1)
axes[0, 1].plot(x, y2)
axes[1, 0].plot(x, y3)
axes[1, 1].plot(x, y4)

plt.show()

上述代碼將創(chuàng)建一個2x2的子圖網格,并在每個子圖中繪制不同的函數。

調整子圖之間的間距

subplots_adjust

subplots_adjustmatplotlib中的一個函數,用于調整子圖之間的間距。它可以用于調整子圖布局,使得子圖之間的間距更合適。

函數的語法如下:

matplotlib.pyplot.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)

參數說明如下:

  • left:左邊界的位置。默認為0.125。
  • bottom:底邊界的位置。默認為0.1。
  • right:右邊界的位置。默認為0.9。
  • top:頂邊界的位置。默認為0.9。
  • wspace:子圖之間的寬度間距。默認為0.2。
  • hspace:子圖之間的高度間距。默認為0.2。

調用subplots_adjust函數后,可以通過調整上述參數的值來達到調整子圖布局的效果。

決策樹

plot_tree

plot_treescikit-learn庫中DecisionTreeClassifierDecisionTreeRegressor類的一個方法,用于繪制決策樹模型的樹形圖。

使用plot_tree需要先對DecisionTreeClassifierDecisionTreeRegressor類進行訓練,然后傳入已經訓練好的模型對象,以及需要繪制的樹形圖的配置參數。

下面是plot_tree的常用參數:

  • decision_tree:訓練好的決策樹模型對象。
  • feature_names:特征的名稱列表。
  • class_names:類別的名稱列表。
  • filled:是否給節(jié)點填充顏色,默認為False。
  • rounded:是否將節(jié)點的框圓角化,默認為False。
  • special_characters:是否使用特殊字符,默認為False

使用示例:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import plot_tree

# 加載數據集
iris = datasets.load_iris()
X, y = iris.data, iris.target

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# 創(chuàng)建決策樹分類器并訓練
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)

# 繪制決策樹模型的樹形圖
plot_tree(clf, filled=True, rounded=True, feature_names=iris.feature_names, class_names=iris.target_names)

上述代碼將會繪制出一個決策樹模型的樹形圖,其中每個節(jié)點代表一個判斷條件,通過樹形圖可以清晰地了解決策樹的結構和特征的重要性。

總結

本文介紹了數據可視化的基礎和Python中常用的Matplotlib和Seaborn庫,通過實例演示了如何使用Matplotlib繪制折線圖、散點圖、柱狀圖、箱線圖和餅狀圖,并展示了如何組合這些圖形。

到此這篇關于python數據分析中的多種圖形繪制示例(折線圖、柱狀圖、餅狀圖、散點圖、熱力圖)的文章就介紹到這了,更多相關python實現(xiàn)多種圖形繪制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python 爬蟲之selenium可視化爬蟲的實現(xiàn)

    python 爬蟲之selenium可視化爬蟲的實現(xiàn)

    這篇文章主要介紹了python 爬蟲之selenium可視化爬蟲的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 利用python批量給云主機配置安全組的方法教程

    利用python批量給云主機配置安全組的方法教程

    這篇文章主要給大家介紹了利用python批量給云主機配置安全組的方法教程,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。
    2017-06-06
  • Python?copy()與deepcopy()方法之間有什么區(qū)別

    Python?copy()與deepcopy()方法之間有什么區(qū)別

    這篇文章主要介紹了Python中的copy()和deepcopy(),下面詳細介紹該內容并附上詳細代碼,需要的朋友可以參考一下文章的具體內容,希望對你有所幫助
    2022-10-10
  • 解析python高級異常和運算符重載

    解析python高級異常和運算符重載

    異常是一個事件,該事件會在程序執(zhí)行過程中發(fā)生,影響了程序的正常執(zhí)行。 運算符重載,意味著在某個類的方法中攔截內置的操作,當類的實例出現(xiàn)在內置操作中,Python會調用你的方法,并且方法的返回值會作為相應操作的結果。本文主要介紹了python的高級異常和運算符重載
    2021-06-06
  • Python使用Matplotlib模塊的pie()函數實現(xiàn)繪制餅形圖

    Python使用Matplotlib模塊的pie()函數實現(xiàn)繪制餅形圖

    這篇文章主要為大家詳細介紹了 Python 如何使用 Matplotlib 模塊的pie()函數繪制餅形圖,文中有詳細的代碼講解,對大家學習或工作有一定的幫助,感興趣的可以了解一下
    2023-11-11
  • Python使用單例模式創(chuàng)建類的實現(xiàn)示例

    Python使用單例模式創(chuàng)建類的實現(xiàn)示例

    本文詳細介紹了Python中實現(xiàn)單例模式的多種方式,包括元類、threading.Lock、模塊、importlib、__new__方法和裝飾器等,感興趣的可以了解一下
    2024-12-12
  • python實現(xiàn)多進程代碼示例

    python實現(xiàn)多進程代碼示例

    Python中大部分情況下都需要使用多進程,Python中提供了multiprocessing這個包實現(xiàn)多進程。multiprocessing支持子進程、進程間的同步與通信,本文就詳細的介紹一下
    2018-10-10
  • python Pandas 讀取txt表格的實例

    python Pandas 讀取txt表格的實例

    下面小編就為大家分享一篇python Pandas 讀取txt表格的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python飛機大戰(zhàn) pygame游戲創(chuàng)建快速入門詳解

    python飛機大戰(zhàn) pygame游戲創(chuàng)建快速入門詳解

    這篇文章主要介紹了python飛機大戰(zhàn) pygame游戲創(chuàng)建,結合實例形式詳細分析了Python使用pygame創(chuàng)建飛機大戰(zhàn)游戲的具體步驟與相關操作注意事項,需要的朋友可以參考下
    2019-12-12
  • Python多進程的使用詳情

    Python多進程的使用詳情

    本篇重點介紹Python多進程的使用,主要介紹其的一些方法及進程的創(chuàng)建等,想進一步了解的小伙伴請跟小編一起進入下文吧
    2021-09-09

最新評論

肃北| 麦盖提县| 罗江县| 西安市| 丹巴县| 休宁县| 双桥区| 庆元县| 河东区| 武宁县| 修文县| 西安市| 镇远县| 南溪县| 措勤县| 开远市| 昌都县| 台中市| 林芝县| 连城县| 长子县| 龙陵县| 定西市| 鹤峰县| 沁阳市| 大连市| 凤山市| 翁源县| 涟水县| 和硕县| 淄博市| 临潭县| 恩平市| 内江市| 阳朔县| 吴堡县| 宁晋县| 通许县| 西贡区| 大丰市| 金门县|