欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python數(shù)據(jù)可視化之用Matplotlib繪制常用圖形

 更新時(shí)間:2021年06月03日 15:13:01   作者:tzr0725  
Matplotlib能夠繪制折線圖、散點(diǎn)圖、柱狀圖、直方圖、餅圖. 我們需要知道不同的統(tǒng)計(jì)圖的意義,以此來(lái)決定選擇哪種統(tǒng)計(jì)圖來(lái)呈現(xiàn)我們的數(shù)據(jù),今天就帶大家詳細(xì)了解如何繪制這些常用圖形,需要的朋友可以參考下

一、散點(diǎn)圖

散點(diǎn)圖用兩組數(shù)據(jù)構(gòu)成多個(gè)坐標(biāo)點(diǎn),考察坐標(biāo)點(diǎn)的分布,判斷兩變量之間是否存在某種關(guān)聯(lián)總結(jié)坐標(biāo)點(diǎn)的分布模式。
特點(diǎn):判斷變量之間是否存在數(shù)量關(guān)聯(lián)趨勢(shì),表示離群點(diǎn)的分布規(guī)律。

散點(diǎn)圖繪制

plt.scatter(x,y) # 以默認(rèn)的形狀顏色繪制散點(diǎn)圖

實(shí)例: 假設(shè)我們獲取到了上海2020年5,10月份每天白天的最高氣溫(分別位于列表a、b),那么此時(shí)如何觀察氣溫和隨時(shí)間變化的某種規(guī)律。

# 繪制圖形所需的數(shù)據(jù)
y_5 = [11,17,16,11,12,11,12,13,10,14,8,13,12,15,14,17,18,21,16,17,30,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,15,10,11,13,12,13,6]

代碼如下:

import matplotlib.pyplot as plt

# 設(shè)置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問(wèn)題

plt.figure(figsize=(12,5), dpi=100)

y_5 = [11,17,16,11,12,11,12,13,10,14,8,13,12,15,14,17,18,21,16,17,30,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,15,10,11,13,12,13,6]
x = range(1, 32)

plt.scatter(x, y_5, label='五月份')
plt.scatter(x, y_10, label='十月份')

# 增加標(biāo)題,坐標(biāo)描述
plt.xlabel("時(shí)間")
plt.ylabel("日期")
plt.title("氣溫和隨時(shí)間變化的某種規(guī)律")

# 添加圖形注釋
plt.legend(loc='best')

plt.show()

在這里插入圖片描述

上圖雖然繪制出5、10月氣溫隨日期的變化,但兩者混在一起,不便于觀察,現(xiàn)通過(guò)修改x數(shù)據(jù),將10月的坐標(biāo)點(diǎn)集體往坐標(biāo)軸右側(cè)移動(dòng),改進(jìn)的代碼如下:

import matplotlib.pyplot as plt

# 設(shè)置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問(wèn)題

plt.figure(figsize=(12,5), dpi=100)

y_5 = [11,17,16,11,12,11,12,13,10,14,8,13,12,15,14,17,18,21,16,17,30,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,15,10,11,13,12,13,6]
x_5 = range(1, 32)
x_10 = range(33, 64)

plt.scatter(x_5, y_5, label='五月份')
plt.scatter(x_10, y_10, label='十月份')

# 刻度顯示
x_t = list(x_4)+list(x_10)
x_l = ["5月{}號(hào)".format(i) for i in x_4]
x_l += ["10月{}號(hào)".format(i-31) for i in x_10]
plt.xticks(x_t[::3], x_l[::3], rotation=45)

# 添加圖形注釋
plt.legend(loc='best')

plt.show()

在這里插入圖片描述

二、柱狀圖

柱狀圖是用寬度相同的條形的高度或長(zhǎng)短來(lái)表示數(shù)據(jù)多少的圖形。柱狀圖可以橫置或縱置,縱置時(shí)也稱為柱形圖。

特點(diǎn)

能夠直觀反映出各個(gè)數(shù)據(jù)的大?。?br /> 易于比較數(shù)據(jù)之間的差別。

柱狀圖繪制

plt.bar(x, width, align=‘center', **kwargs)

Parameters:    
x : sequence of scalars.

width : scalar or array-like, optional, 柱狀圖的寬度

align: {‘center', ‘edge'}, optional, default: ‘center'
Alignment of the bars to the x coordinates:
‘center': Center the base on the x positions.
‘edge': Align the left edges of the bars with the x positions.
每個(gè)柱狀圖的位置對(duì)齊方式, 默認(rèn)柱狀圖的中心與x坐標(biāo)中心對(duì)齊

**kwargs:
color: 選擇柱狀圖的顏色

水平條形圖繪制

plt.barh(y, width) # 繪制以y為y軸位置的水平條形圖

實(shí)例:假設(shè)我們獲取到了2019年內(nèi)地電影票房前20的電影(列表a)和電影票房數(shù)據(jù)(列表b),繪制柱狀圖直觀地展示數(shù)據(jù),代碼如下:

import matplotlib.pyplot as plt
# 設(shè)置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問(wèn)題

plt.figure(figsize=(15,10),dpi=100)
# 準(zhǔn)備電影的名字以及電影的票房數(shù)據(jù)
movie_name = ["流浪地球","復(fù)仇者聯(lián)盟4:終局之戰(zhàn)","哪吒之魔童降世","瘋狂的外星人",
              "飛馳人生","蜘蛛俠:英雄遠(yuǎn)征","掃毒2天地對(duì)決","烈火英雄","大黃蜂",
              "驚奇隊(duì)長(zhǎng)","比悲傷更悲傷的故事","哥斯拉2:怪獸之王","阿麗塔:戰(zhàn)斗天使",
              "銀河補(bǔ)習(xí)班","獅子王","反貪風(fēng)暴4","熊出沒(méi)","大偵探皮卡丘","新喜劇之王",
              "使徒行者2:諜影行動(dòng)","千與千尋"]
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,5.22]
# 放進(jìn)橫坐標(biāo)的數(shù)字列表
x = range(len(movie_name))

# 畫(huà)出條形圖
# 顏色color參數(shù)表示條形圖的順序顏色,可循環(huán)
plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g','g'])

# 修改刻度名稱,并旋轉(zhuǎn)90度
plt.xticks(x, movie_name, rotation=90)

# 展示圖形
plt.show()

在這里插入圖片描述

# 水平條形圖
plt.figure(figsize=(15,10),dpi=100)
plt.barh(movie_name, y, color=['b','r','g','y','c','m','k'])
plt.show()

在這里插入圖片描述

有時(shí)候?yàn)榱斯狡鹨?jiàn),我們需要對(duì)比不同電影首日和首周的票房收入,讓數(shù)據(jù)更有說(shuō)服力。假設(shè)數(shù)據(jù)如下:

movie_name = ['雷神3:諸神黃昏','正義聯(lián)盟','尋夢(mèng)環(huán)游記']
first_day = [10587.6,10062.5,1275.7] # 首日票房
first_weekend=[36224.9,34479.6,11830] # 首周票房

繪制不同電影首日和首周票房的數(shù)據(jù)圖,代碼如下:

import matplotlib.pyplot as plt
# 設(shè)置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問(wèn)題

plt.figure(figsize=(15,10),dpi=100)
# 準(zhǔn)備數(shù)據(jù)
movie_name = ['雷神3:諸神黃昏','正義聯(lián)盟','尋夢(mèng)環(huán)游記']

# 構(gòu)造首日票房,首周票房數(shù)據(jù)
first_day = [10587.6,10062.5,1275.7]
first_weekend=[36224.9,34479.6,11830]
x = range(len(movie_name))

# 繪制第一個(gè)柱狀圖
plt.bar(x, first_day, width=0.25)
# 接著繪制第二個(gè)柱狀圖
plt.bar([i+0.25 for i in x], first_weekend, width=0.25)

# 修改刻度名稱
# 顯示x軸中文,固定在首日和首周的中間位置
plt.xticks([i+0.125 for i in x], movie_name)

plt.show()

在這里插入圖片描述

注意點(diǎn)

x軸坐標(biāo)刻度顯示位置的調(diào)整,既可以通過(guò)繪制圖形時(shí)調(diào)整x數(shù)據(jù),也可以通過(guò)繪制x軸刻度時(shí)調(diào)整刻度的方法來(lái)實(shí)現(xiàn)x軸刻度顯示在兩個(gè)柱狀圖中間。如果不做任何調(diào)整,它是默認(rèn)與第一個(gè)柱狀圖中間對(duì)齊的。

三、直方圖

直方圖,形狀類似柱狀圖卻有著與柱狀圖完全不同的含義。直方圖牽涉統(tǒng)計(jì)學(xué)的概念,首先要對(duì)數(shù)據(jù)進(jìn)行分組,然后統(tǒng)計(jì)每個(gè)分組內(nèi)數(shù)據(jù)元的數(shù)量。 在坐標(biāo)系中,橫軸標(biāo)出每個(gè)組的端點(diǎn),縱軸表示頻數(shù),每個(gè)矩形的高代表對(duì)應(yīng)的頻數(shù),稱這樣的統(tǒng)計(jì)圖為頻數(shù)分布直方圖。

特點(diǎn):繪制連續(xù)性的數(shù)據(jù),展示一組或者多組數(shù)據(jù)的分布情況,用于統(tǒng)計(jì)數(shù)據(jù)分布的特征。

相關(guān)概念

組數(shù):在統(tǒng)計(jì)數(shù)據(jù)時(shí),把數(shù)據(jù)按照不同的范圍分成幾個(gè)組,分成的組的個(gè)數(shù)稱為組數(shù);
組距:每一組兩個(gè)端點(diǎn)的差。

直方圖繪制

plt.hist(x,bins=None)
繪制以x為數(shù)值,bins為組數(shù),組數(shù) = 極差/組距

實(shí)例:假設(shè)我們獲取到了一些電影的時(shí)長(zhǎng),繪制直方圖展示電影時(shí)長(zhǎng)的分布情況,代碼如下:

import matplotlib.pyplot as plt
# 設(shè)置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問(wèn)題

plt.figure(figsize=(15,10),dpi=100)
# 準(zhǔn)備數(shù)據(jù),電影時(shí)長(zhǎng)
time =[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 
       135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 
       127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 
       115,  99, 136, 126, 134,  95, 138, 117, 111, 78, 
       132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 
       126, 130,126, 130, 126, 116, 123, 106, 112, 138, 
       123,  86, 101,  99, 136,123, 117, 119, 105, 137, 
       123, 128, 125, 104, 109, 134, 125, 127,105, 120, 
       107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 
       114,105, 115, 132, 145, 119, 121, 112, 139, 125, 
       138, 109, 132, 134,156, 106, 117, 127, 144, 139, 
       139, 119, 140,  83, 110, 102,123,107, 143, 115, 
       136, 118, 139, 123, 112, 118, 125, 109, 119, 133, 
       112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 
       118, 112, 135,115, 146, 137, 116, 103, 144,  83, 
       123, 111, 110, 111, 100, 154,136, 100, 118, 119, 
       133, 134, 106, 129, 126, 110, 111, 109, 141, 120, 
       117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 
       125, 126,114, 140, 103, 130, 141, 117, 106, 114, 
       121, 114, 133, 137,  92,121, 112, 146,  97, 137, 
       105,  98, 117, 112,  81,  97, 139, 113,134, 106, 
       144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 
       110, 105, 129, 137, 112, 120, 113, 133, 112,  83, 
       94, 146, 133, 101, 131, 116, 111, 84, 137, 115, 
       122, 106, 144, 109, 123, 116, 111,111, 133, 150]

# 組距
bins = 2
# 組數(shù),極差/組距
groups = int((max(time) - min(time)) / 2)

# 繪制直方圖
plt.hist(time, groups)

# 指定x軸刻度的范圍
plt.xticks(list(range(min(time), max(time)))[::2])

# 添加坐標(biāo)描述
plt.xlabel('電影時(shí)長(zhǎng)大小')
plt.ylabel('電影的數(shù)量')

# 增加網(wǎng)格顯示
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()

在這里插入圖片描述

四、扇形圖

扇形圖,用整個(gè)圓表示總數(shù),用圓內(nèi)各個(gè)扇形的大小表示各部分?jǐn)?shù)量占總數(shù)的百分?jǐn)?shù)。

扇形圖繪制

plt.pie(x, explode=None, labels=None)

x:扇形數(shù)據(jù)
explode:設(shè)置某幾個(gè)分塊是否要分離餅圖
labels:每塊扇形標(biāo)簽
autopct:百分比數(shù)據(jù)標(biāo)簽
shadow:是否顯示陰影
plt.pie()有3個(gè)返回值:
patches:繪制餅圖每一塊的對(duì)象
texts:文本的列表
autotexts:百分比的文本列表

實(shí)例:假設(shè)我們獲取到了一些電影的排片數(shù)據(jù),繪制扇形圖展示電影的排片占比情況,代碼如下:

import matplotlib.pyplot as plt
# 設(shè)置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問(wèn)題

# 餅圖繪制
plt.figure(figsize=(15, 10), dpi=100)
# 電影排片數(shù)據(jù)
movie_name = ['雷神3:諸神黃昏','正義聯(lián)盟','東方快車謀殺案','尋夢(mèng)環(huán)游記','全球風(fēng)暴','降魔傳','追捕','七十七天','密戰(zhàn)','狂獸','其它']
place_count = [60605,54546,45819,28243,13270,9945,7679,6799,6101,4621,20105]

# 繪制扇形圖
plt.pie(place_count, labels=movie_name, autopct="%1.2f%%")

# 指定顯示的pie是正圓
plt.axis('equal')

# 設(shè)置圖例和標(biāo)題
plt.legend(loc="best")
plt.title("排片占比情況")

plt.show()

在這里插入圖片描述

扇形圖優(yōu)化的手段添加陰影,分離特定數(shù)據(jù)等:

import matplotlib.pyplot as plt
# 設(shè)置字體
plt.rcParams['font.sans-serif']=['SimHei'] # 替換sans_serif字體
plt.rcParams['axes.unicode_minus']=False # 解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問(wèn)題

plt.figure(figsize=(15, 10), dpi=100)
movie_name = ['雷神3:諸神黃昏','正義聯(lián)盟','東方快車謀殺案','尋夢(mèng)環(huán)游記','全球風(fēng)暴','降魔傳','追捕','七十七天','密戰(zhàn)','狂獸','其它']
place_count = [60605,54546,45819,28243,13270,9945,7679,6799,6101,4621,20105]

# 繪制扇形圖,添加陰影效果,并讓占比最大的雷神3分離
explode = [0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
res = plt.pie(place_count, labels=movie_name, explode=explode, autopct="%1.2f%%", shadow=True)
patches, texts, autotexts = res
print(patches)  # 表示每個(gè)扇形的對(duì)象
print(texts)  # 每個(gè)文本對(duì)象
print(autotexts)  # 每個(gè)百分比對(duì)象

# 指定顯示的pie是正圓
plt.axis('equal')

# 設(shè)置圖例和標(biāo)題
plt.legend(loc="best")
plt.title("排片占比情況")

plt.show()

打印的扇形圖返回值:

在這里插入圖片描述

優(yōu)化后的扇形圖:

在這里插入圖片描述

總結(jié)

本文講述了使用Matplotlib繪制散點(diǎn)圖、柱狀圖、直方圖、扇形圖的基本操作。

到此這篇關(guān)于Python數(shù)據(jù)可視化之用Matplotlib繪制常用圖形的文章就介紹到這了,更多相關(guān)Matplotlib繪制圖形內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)戰(zhàn)項(xiàng)目之MySQL tkinter pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Python實(shí)戰(zhàn)項(xiàng)目之MySQL tkinter pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用MySQL、tkinter、 pyinstaller實(shí)現(xiàn)一個(gè)學(xué)生管理系統(tǒng),大家可以通過(guò)案例查缺補(bǔ)漏,提升水平
    2021-10-10
  • 如何基于Python爬蟲(chóng)爬取美團(tuán)酒店信息

    如何基于Python爬蟲(chóng)爬取美團(tuán)酒店信息

    這篇文章主要介紹了如何基于Python爬蟲(chóng)爬取美團(tuán)酒店信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python3中使用__slots__限定實(shí)例屬性操作分析

    python3中使用__slots__限定實(shí)例屬性操作分析

    這篇文章主要介紹了python3中使用__slots__限定實(shí)例屬性操作,結(jié)合實(shí)例形式分析了Python3定義類實(shí)例綁定屬性,以及使用__slots__限定實(shí)例屬性的相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除

    python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除

    這篇文章主要介紹了python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 用python實(shí)現(xiàn)英文字母和相應(yīng)序數(shù)轉(zhuǎn)換的方法

    用python實(shí)現(xiàn)英文字母和相應(yīng)序數(shù)轉(zhuǎn)換的方法

    這篇文章主要介紹了用python實(shí)現(xiàn)英文字母和相應(yīng)序數(shù)轉(zhuǎn)換的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 使用matplotlib畫(huà)散點(diǎn)圖的方法

    使用matplotlib畫(huà)散點(diǎn)圖的方法

    今天小編就為大家分享一篇使用matplotlib畫(huà)散點(diǎn)圖的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Python利用wxPython制作股票價(jià)格查詢工具

    Python利用wxPython制作股票價(jià)格查詢工具

    在當(dāng)今信息時(shí)代,金融市場(chǎng)是一個(gè)引人注目的話題。本文將介紹如何使用 Yahoo Finance API、yfinance 模塊和 wxPython 庫(kù)來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的全球股市實(shí)時(shí)價(jià)格查詢工具,希望大家能夠喜歡
    2023-05-05
  • python實(shí)現(xiàn)最速下降法

    python實(shí)現(xiàn)最速下降法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)最速下降法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • python的json中方法及jsonpath模塊用法分析

    python的json中方法及jsonpath模塊用法分析

    這篇文章主要介紹了python的json中方法及jsonpath模塊用法,結(jié)合實(shí)例形式分析了Python json相關(guān)模塊與常見(jiàn)方法使用技巧,需要的朋友可以參考下
    2019-12-12
  • 基于Python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能

    基于Python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能

    這篇文章主要為大家詳細(xì)介紹了Python如何通過(guò)WechatPCAPI來(lái)實(shí)現(xiàn)微信自動(dòng)回復(fù)的功能,文中的示例代碼講解詳細(xì),快跟隨小編一起動(dòng)手嘗試一下
    2022-06-06

最新評(píng)論