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

Python用?matplotlib?繪制柱狀圖

 更新時(shí)間:2021年12月01日 10:44:27   作者:盆友圈的小可愛  
這篇文章主要介紹了Python如何用?matplotlib?繪制柱狀圖,文章對(duì)matplotlib模塊中詳細(xì)學(xué)習(xí)繪制各種柱狀圖標(biāo)相關(guān)屬性和方法,在遇到需要直觀展示離散數(shù)據(jù)點(diǎn)的差異時(shí),我們可以使用bar()或者barh()繪制美觀的圖表。具有一定的參考價(jià)值,需要的朋友可以參考一下

復(fù)習(xí)回顧:

Python 為數(shù)據(jù)展示提供了大量?jī)?yōu)秀的功能包,其中 matplotlib 模塊可以方便繪制制作折線圖、柱狀圖、散點(diǎn)圖等高質(zhì)量的數(shù)據(jù)包。
關(guān)于 matplotlib 模塊,我們前期已經(jīng)對(duì)matplotlib進(jìn)行基本框架、以及常用方法的學(xué)習(xí)

?matplotlib 模塊基礎(chǔ)知識(shí):對(duì)matplotlib模塊進(jìn)行初步認(rèn)識(shí),對(duì)常用的方法進(jìn)行學(xué)習(xí)
matplotlib 模塊底層原理:matplotlib 模塊包含腳本層、美工層及后端層三層細(xì)節(jié)了解
matplotlib 模塊折線圖繪制:總結(jié)折線圖相關(guān)屬性和方法

在 matplotlib 模塊提供的圖表中,除了折線圖使用最多外,柱狀圖也是我們?nèi)粘?shù)據(jù)分析的圖表。

接下來(lái)我們開始學(xué)習(xí)繪制柱狀圖相關(guān)屬性和方法

1. 柱狀圖概述

1.1什么是柱狀圖

  • 柱狀圖又稱為條形圖,是一種以長(zhǎng)方形的長(zhǎng)度為變量數(shù)據(jù)進(jìn)行統(tǒng)計(jì)的圖表
  • 柱狀圖用來(lái)比較兩個(gè)或以上類型
  • 柱狀圖只有一個(gè)以長(zhǎng)方形的長(zhǎng)度為變量
  • 柱狀圖可以橫向排列或者多維方式展示

1.2柱狀圖使用場(chǎng)景

  • 柱狀圖適用在較小數(shù)據(jù)集的分析
  • 適用二維數(shù)據(jù)集,只比較一個(gè)維度數(shù)據(jù)差異項(xiàng)
  • 直觀展示各個(gè)體之間數(shù)據(jù)的差異
  • 表現(xiàn)離散型的時(shí)間序列

1.3柱狀圖繪制步驟

  • 導(dǎo)入matplotlib.pyplot模塊
  • 準(zhǔn)備數(shù)據(jù),可以使用numpy/pandas整理數(shù)據(jù)
  • 調(diào)用pyplot.bar()繪制柱狀圖

1.3案例展示

本次,我們分析過(guò)去5年內(nèi)的產(chǎn)品年銷量展示

案例所用到的數(shù)據(jù)如下:

import random

x_data = ["20{}年".format(i) for i in range(16,21)]
y_data = [random.randint(100,300) for i in range(6)]

繪制柱狀圖

import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"]=['SimHei']
plt.rcParams["axes.unicode_minus"]=False

for i in range(len(x_data)):
    plt.bar(x_data[i],y_data[i])

plt.title("銷量分析")
plt.xlabel("年份")
plt.ylabel("銷量")

plt.show()

2. 柱狀圖屬性

2.1柱狀體顏色填充

  • facecolor(fc)關(guān)鍵字
  • color 關(guān)鍵字
  • 顏色簡(jiǎn)稱:
屬性值 說(shuō)明 屬性值 說(shuō)明
"b"/"bule" 藍(lán)色 "m"/"magenta" 品紅
"g" /"green" 綠色 "y"/"yellow" 黃色
"r"/"red" 紅色 "k"/"black" 黑色
"c"/"cyan" 青色 "w"/"white"
rgb:
  • 格式形式:(r,g,b)
  • 取值范圍:0~1

2.2狀描邊設(shè)置

柱狀體邊框顏色

  • edgecolor 或者 ec

柱狀體邊框樣式

  • linestyle 或者 ls
  • 線條樣式:

屬性值 說(shuō)明
"-" 、"solid" 默認(rèn)實(shí)線顯示
"--"、"dashed" 虛線
"-." "dashdot" 點(diǎn)劃線
":"、"dotted" 虛線
"None" """"

2.3狀體邊框?qū)挾?/h3>
  • linewidth 或者 lw
  • 柱狀圖填充樣式

hatch: 設(shè)置填充樣式
屬性取值:{'/', '', '|', '-', '+', 'x', 'o', 'O', '.', '*'} |

2.4刻度標(biāo)簽

  • tickle label:默認(rèn)使用數(shù)字標(biāo)簽

我們對(duì) 第一節(jié)柱狀圖添加邊框樣式為"--",添加指定rgb顏色,填充圓圈

for i in range(len(x_data)):
   plt.bar(x_data[i],y_data[i],color=(0.2*i,0.2*i,0.2*i),linestyle="--",hatch="o")

3. 堆疊柱狀圖

  • 在柱狀圖中,我們會(huì)在同時(shí)對(duì)比兩組數(shù)據(jù)在同一類中的表現(xiàn)形式,因此需要繪制堆疊柱狀圖
  • bottom : 條形底座的y坐標(biāo),默認(rèn)值為0

在第一節(jié)案例中,添加一組y軸數(shù)據(jù)所有數(shù)據(jù)如下:

x_data = ["20{}年".format(i) for i in range(16,21)]
 y_data = list(random.randint(100,300) for i in range(5))
 y2_data = list(random.randint(100,300) for i in range(5))

再添加一次pyplot.bar方法,添加bottom屬性

 plt.bar(x_data,y_data,lw=0.5,fc="r",label="Phone")
 plt.bar(x_data,y2_data,lw=0.5,fc="b",label="Android",bottom=y_data)


4. 并列柱狀圖

在繪制并列的柱狀圖中,要控制好每個(gè)柱狀體的位置和大小可以使用width屬性

  • width: 設(shè)置每組柱狀體的寬度
  • x軸:x軸的寬度每組直接也要設(shè)置好

例如繼續(xù)改造上面案例,我們?yōu)閎ar1和bar2添加了width屬性后,單獨(dú)設(shè)置x軸并排的寬度為0.3

x_width = range(0,len(x_data))
x2_width = [i+0.3 for i in x_width]


plt.bar(x_width,y_data,lw=0.5,fc="r",width=0.3,label="Phone")
plt.bar(x2_width,y2_data,lw=0.5,fc="b",width=0.3,label="Android")

plt.xticks(range(0,5),x_data)

5. 水平柱狀圖

柱狀圖中,有時(shí)候需要讓柱狀圖水平放置,比較差異,我們這時(shí)候需要使用到barh方法

  • pyplot.barh(y,width):繪制水平柱狀圖
  • 結(jié)合上述案例,改用barh方法
x_data = ["20{}年".format(i) for i in range(16,21)]
  y_data = list(random.randint(100,300) for i in range(5))
  y2_data = list(random.randint(100,300) for i in range(5))

  x_width = range(0,len(x_data))
  x2_width = [i+0.3 for i in x_width]

  plt.barh(x_width,y_data,lw=0.5,fc="r",height=0.3,label="Phone")
  plt.barh(x2_width,y2_data,lw=0.5,fc="b",height=0.3,label="Android")
  plt.yticks(range(0,5),x_data)

  plt.legend()

  plt.title("銷量分析")
  plt.ylabel("年份")
  plt.xlabel("銷量")

  plt.show()

6. 添加折線柱狀圖

我們?cè)诓榭粗鶢顖D時(shí),有時(shí)候會(huì)需要輔助折線來(lái)查看

  • 使用pyplot.plot()方法匯總折線圖
  • 同時(shí)使用pyplot.text()顯示坐標(biāo)值
  • 當(dāng)堆疊圖時(shí),需要計(jì)算好折線相對(duì)位置
plt.plot(x_data,y_data,color="pink",linestyle="--")

plt.plot(x_data, y2_data+200, color="skyblue", linestyle="-.")

# 柱狀圖
plt.bar(x_data,y_data,lw=0.5,fc="r",width=0.3,label="Phone",alpha=0.5)
plt.bar(x_data,y2_data, lw=0.5, fc="b", width=0.3, label="Android",alpha=0.5,bottom=y_data)

for i,j in zip(x_data,y_data):

   plt.text(i,j+0.05,"%d"%j,ha="center",va="bottom")

for i2,j2 in zip(x_data,y2_data):

   plt.text(i2,j2+180,"%d"%j2,ha="center",va="bottom")

7. 正負(fù)柱狀圖

我們需要使用Axes對(duì)象來(lái)設(shè)置坐標(biāo)軸的位置

  • 首先使用pyplot.gca()方法創(chuàng)建axes對(duì)象
  • 然后使用matplotlib.spines模塊調(diào)用set_position設(shè)置坐標(biāo)軸位置
  • set_position 設(shè)置軸位置點(diǎn)
  • spines[]選項(xiàng)有"left"|"bottom"|"width"|"height"
  • set_position 值格式為(位置類型,數(shù)量);位置類型;"outward"|"axes"|"data"|;數(shù)量:中心->("軸",0.5),零->("數(shù)據(jù)",0.0)
y_data = np.random.randint(100, 300,5)
y2_data = np.random.randint(100, 300,5)

ax = plt.gca()
ax.spines["bottom"].set_position(('data', 0))

plt.bar(x_data,+y_data,lw=0.5,fc="r",width=0.3,label="Phone")
plt.bar(x_data,-y2_data, lw=0.5, fc="b", width=0.3, label="Android")

for i,j in zip(x_data,y_data):

    plt.text(i,j,"%d"%j,ha="center",va="top")

for i2,j2 in zip(x_data,y2_data):

    plt.text(i2,-j2,"%d"%j2,ha="center",va="bottom")

總結(jié):
本文我們atplotlib模塊中詳細(xì)學(xué)習(xí)繪制各種柱狀圖標(biāo)相關(guān)屬性和方法,在遇到需要直觀展示離散數(shù)據(jù)點(diǎn)的差異時(shí),我們可以使用bar()或者barh()繪制美觀的圖表。

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

相關(guān)文章

  • tensorflow圖像裁剪進(jìn)行數(shù)據(jù)增強(qiáng)操作

    tensorflow圖像裁剪進(jìn)行數(shù)據(jù)增強(qiáng)操作

    這篇文章主要介紹了tensorflow圖像裁剪進(jìn)行數(shù)據(jù)增強(qiáng)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 淺析Python 多行匹配模式

    淺析Python 多行匹配模式

    這篇文章主要介紹了Python 多行匹配模式的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python FastAPI 多參數(shù)傳遞的示例詳解

    Python FastAPI 多參數(shù)傳遞的示例詳解

    這篇文章主要介紹了Python FastAPI 多參數(shù)傳遞,FastAPI通過(guò)模板來(lái)匹配URL中的參數(shù)列表,大概分為三類方式傳遞參數(shù),每種方式結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Python內(nèi)存管理方式和垃圾回收算法解析

    Python內(nèi)存管理方式和垃圾回收算法解析

    這篇文章主要介紹了Python內(nèi)存管理方式和垃圾回收算法解析,介紹了傳統(tǒng)的垃圾回收機(jī)制,其工作方法,finalizer的問(wèn)題等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 如何在scrapy中集成selenium爬取網(wǎng)頁(yè)的方法

    如何在scrapy中集成selenium爬取網(wǎng)頁(yè)的方法

    這篇文章主要介紹了如何在scrapy中集成selenium爬取網(wǎng)頁(yè)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python Pandas批量讀取csv文件到dataframe的方法

    Python Pandas批量讀取csv文件到dataframe的方法

    這篇文章主要介紹了Python Pandas批量讀取csv文件到dataframe的方法,需要的朋友可以參考下
    2018-10-10
  • python判斷完全平方數(shù)的方法

    python判斷完全平方數(shù)的方法

    今天小編就為大家分享一篇python判斷完全平方數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python入門教程(四十)Python的NumPy數(shù)組創(chuàng)建

    Python入門教程(四十)Python的NumPy數(shù)組創(chuàng)建

    這篇文章主要介紹了Python入門教程(四十)Python的NumPy數(shù)組創(chuàng)建,NumPy 用于處理數(shù)組,NumPy 中的數(shù)組對(duì)象稱為 ndarray,我們可以使用 array() 函數(shù)創(chuàng)建一個(gè) NumPy ndarray 對(duì)象,需要的朋友可以參考下
    2023-05-05
  • Python作用域用法實(shí)例詳解

    Python作用域用法實(shí)例詳解

    這篇文章主要介紹了Python作用域用法,結(jié)合實(shí)例形式詳細(xì)分析了Python作用域概念,用法與相關(guān)函數(shù)的使用技巧,需要的朋友可以參考下
    2016-03-03
  • 詳解django中url路由配置及渲染方式

    詳解django中url路由配置及渲染方式

    這篇文章主要介紹了詳解django中url路由配置及渲染方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02

最新評(píng)論

九龙城区| 保山市| 武胜县| 会同县| 玛曲县| 尚志市| 和静县| 突泉县| 南京市| 农安县| 阿城市| 珠海市| 永嘉县| 特克斯县| 浙江省| 新河县| 乐至县| 长岭县| 黑山县| 陆河县| 林甸县| 苍梧县| 龙游县| 黄梅县| 阿克陶县| 盐边县| 手游| 红河县| 双鸭山市| 荥经县| 萨嘎县| 石狮市| 德钦县| 新河县| 鄯善县| 大港区| 望都县| 教育| 淳化县| 临夏县| 岗巴县|