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

python 畫條形圖(柱狀圖)實例

 更新時間:2020年04月24日 09:09:23   作者:心態(tài)與做事習慣決定人生高度  
這篇文章主要介紹了python 畫條形圖(柱狀圖)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

條形圖(bar chart),也稱為柱狀圖,是一種以長方形的長度為變量的統(tǒng)計圖表,長方形的長度與它所對應(yīng)的變量數(shù)值呈一定比例。

1. 豎放條形圖

畫條形圖要用到 pyplot 中的 bar 函數(shù),該函數(shù)的基本語法為:

bar(x, height, [width], **kwargs)

x 數(shù)組,每個條形的橫坐標
height 個數(shù)或一個數(shù)組,條形的高度
[width] 可選參數(shù),一個數(shù)或一個數(shù)組,條形的寬度,默認為 0.8
**kwargs 不定長的關(guān)鍵字參數(shù),用字典形式設(shè)置條形圖的其他屬性

**kwargs 中常設(shè)置的參數(shù)包括圖形標簽 label,顏色標簽 color,不透明度 alpha 等。

假設(shè)某項針對男女大學(xué)生購買飲用水愛好的調(diào)查結(jié)果如下表:

碳酸飲料 6 9
綠茶 7 4
礦泉水 6 4
其他 2 6
果汁 1 5
總計 22 28

畫出男生飲用水情況的直方圖,代碼如下:

import matplotlib.pyplot as plt

# 這兩行代碼解決 plt 中文顯示的問題
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

waters = ('碳酸飲料', '綠茶', '礦泉水', '果汁', '其他')
buy_number = [6, 7, 6, 1, 2]

plt.bar(waters, buy_number)
plt.title('男性購買飲用水情況的調(diào)查結(jié)果')

plt.show()

圖形:

2. 橫放條形圖

若要生成橫的條形圖,則可以使用 barh 函數(shù),其語法與 bar 函數(shù)非常類似。

bar(x, width, [height], **kwargs)

y 數(shù)組,每個條形的縱坐標
width 一個數(shù)或一個數(shù)組,條形的寬度
[height] 可選參數(shù),一個數(shù)或一個數(shù)組,條形的高度,默認為 0.8
**kwargs 不定長的關(guān)鍵字參數(shù),用字典形式設(shè)置條形圖的其他屬性

代碼:

import matplotlib.pyplot as plt

# 這兩行代碼解決 plt 中文顯示的問題
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

waters = ('碳酸飲料', '綠茶', '礦泉水', '果汁', '其他')
buy_number = [6, 7, 6, 1, 2]

plt.barh(waters, buy_number) # 橫放條形圖函數(shù) barh
plt.title('男性購買飲用水情況的調(diào)查結(jié)果')

plt.show()

3. 并列條形圖

若要將男生與女生的調(diào)查情況畫出兩個條形圖一塊顯示,則可以使用 bar 或 barh 函數(shù)兩次,并調(diào)整 bar 或 barh 函數(shù)的條形圖位置坐標以及相應(yīng)刻度,使得兩組條形圖能夠并排顯示。

import matplotlib.pyplot as plt
import numpy as np

# 這兩行代碼解決 plt 中文顯示的問題
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 輸入統(tǒng)計數(shù)據(jù)
waters = ('碳酸飲料', '綠茶', '礦泉水', '果汁', '其他')
buy_number_male = [6, 7, 6, 1, 2]
buy_number_female = [9, 4, 4, 5, 6]

bar_width = 0.3 # 條形寬度
index_male = np.arange(len(waters)) # 男生條形圖的橫坐標
index_female = index_male + bar_width # 女生條形圖的橫坐標

# 使用兩次 bar 函數(shù)畫出兩組條形圖
plt.bar(index_male, height=buy_number_male, width=bar_width, color='b', label='男性')
plt.bar(index_female, height=buy_number_female, width=bar_width, color='g', label='女性')

plt.legend() # 顯示圖例
plt.xticks(index_male + bar_width/2, waters) # 讓橫坐標軸刻度顯示 waters 里的飲用水, index_male + bar_width/2 為橫坐標軸刻度的位置
plt.ylabel('購買量') # 縱坐標軸標題
plt.title('購買飲用水情況的調(diào)查結(jié)果') # 圖形標題

plt.show()

補充知識:Python 條形圖與直方圖有非常大的區(qū)別

區(qū)別:

首先,條形圖是用條形的長度表示各類別頻數(shù)的多少,其寬度(表示類別)則是固定的;

直方圖是用面積表示各組頻數(shù)的多少,矩形的高度表示每一組的頻數(shù)或頻率,寬度則表示各組的組距,因此其高度與寬度均有意義。

其次,由于分組數(shù)據(jù)具有連續(xù)性,直方圖的各矩形通常是連續(xù)排列,而條形圖則是分開排列。

最后,條形圖主要用于展示分類數(shù)據(jù),而直方圖則主要用于展示數(shù)據(jù)型數(shù)據(jù),我們初中學(xué)的就是條形統(tǒng)計圖,很顯然有沒有當初那種感覺?(身高-年齡 條形統(tǒng)計圖)在坐標上畫出每個年齡對應(yīng)的頻數(shù)。這就是我們研究數(shù)據(jù)分布最喜歡用的。如果還是有點蒙,下面相同數(shù)據(jù)對比一下這兩種圖像你就會明白!

數(shù)據(jù):

年齡 0 1 2 3 4 5 6 7 8 9 10 總數(shù)
人數(shù) 3 6 7 11 13 18 15 11 7 5 4 100
條形統(tǒng)計圖(注重每類多少個):

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
plt.rcParams['font.sans-serif']=['SimHei'] #正常顯示中文
plt.rcParams['axes.unicode_minus']=False #正常顯示負號
 
# d=pd.read_excel('E:\Python\projects\data\data100.xlsx',header=None)
# d=d[0]
# d=list(d)
 
ages=range(11)
count=[3,6,7,11,13,18,15,11,7,5,4]
plt.bar(ages,count, label='graph 1')
# params
# x: 條形圖x軸
# y:條形圖的高度
# width:條形圖的寬度 默認是0.8
# bottom:條形底部的y坐標值 默認是0
# align:center / edge 條形圖是否以x軸坐標為中心點或者是以x軸坐標為邊緣
plt.legend()
plt.xlabel('ages')
plt.ylabel('count')
plt.title(u'測試例子——條形圖')
 
for i in range(11):
  plt.text(i,count[i]+0.1,"%s"%count[i],va='center')
 
plt.show()

直方圖:

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import numpy as np
import pandas as pd
plt.rcParams['font.sans-serif']=['SimHei'] #正常顯示中文
plt.rcParams['axes.unicode_minus']=False #正常顯示負號
# d=np.random.normal(0,1,100)
d=pd.read_excel('E:\Python\projects\data\data100.xlsx',header=None)
d=d[0]
d=list(d)
print(d)
n, bins, patches = plt.hist(x=d, bins=11, color='#0504aa',
        alpha=0.8, rwidth=0.6) #alpha 是顏色深度 rwidth 條形寬度,bins條形箱的數(shù)目
 
plt.grid(axis='y', alpha=0.4) #alpha 網(wǎng)格顏色深度
plt.xlabel('age')
plt.ylabel('count')
plt.title('100個樣本分布如下')
plt.text(20, 40, r'$\mu=0, sigma=1$')#前面是坐標,寫字
# plt.ylim(19) #設(shè)置y的范圍
 
plt.show()

對比兩個圖就能知道,條形圖將類別對的死死的,但是直方圖就用間隔來劃分每一柱多少,雖然大體相差不大,但是對于數(shù)據(jù)研究那影響可大也可小??傊私饬藚^(qū)別才能避免不必要的犯錯。

以上這篇python 畫條形圖(柱狀圖)實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Elasticsearches的集群搭建及數(shù)據(jù)分片過程詳解

    Elasticsearches的集群搭建及數(shù)據(jù)分片過程詳解

    這篇文章主要為大家介紹了Elasticsearches的集群搭建及數(shù)據(jù)分片過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Python中JSON的使用方法(超詳細)

    Python中JSON的使用方法(超詳細)

    JSON是一種輕量級的數(shù)據(jù)交換格式,它是JavaScript的子集,易于人閱讀和編寫,這篇文章主要介紹了Python中JSON的基本使用,需要的朋友可以參考下
    2022-11-11
  • Python實現(xiàn)監(jiān)控內(nèi)存使用情況和代碼執(zhí)行時間

    Python實現(xiàn)監(jiān)控內(nèi)存使用情況和代碼執(zhí)行時間

    我的代碼的哪些部分運行時間最長、內(nèi)存最多?我怎樣才能找到需要改進的地方?在開發(fā)過程中,我很確定我們大多數(shù)人都會想知道這一點。本文總結(jié)了一些方法來監(jiān)控?Python?代碼的時間和內(nèi)存使用情況,希望對大家有所幫助
    2023-01-01
  • Python?pyecharts繪制條形圖詳解

    Python?pyecharts繪制條形圖詳解

    pyecharts是一個由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認可。本文將利用其繪制多樣的條形圖,需要的可以參考一下
    2022-04-04
  • Python字符與ASCII碼相互轉(zhuǎn)換方法

    Python字符與ASCII碼相互轉(zhuǎn)換方法

    在做python編程時,碰到了需要將字母轉(zhuǎn)換成ascii碼的需求,所以下面這篇文章主要給大家介紹了關(guān)于Python字符與ASCII碼相互轉(zhuǎn)換的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • 最簡化ChatGLM2-6b小白部署教程【windows系統(tǒng),16G內(nèi)存即可,對顯卡無要求,CPU運行】

    最簡化ChatGLM2-6b小白部署教程【windows系統(tǒng),16G內(nèi)存即可,對顯卡無要求,CPU運行】

    這篇文章主要介紹了最簡化ChatGLM2-6b小白部署的方法,可以在windows系統(tǒng)環(huán)境下,16G內(nèi)存且對顯卡無要求,并以CPU模式運行,方便實現(xiàn)個人PC機環(huán)境下的部署體驗,需要的朋友可以參考下
    2023-07-07
  • python刪除列表元素的三種方法(remove,pop,del)

    python刪除列表元素的三種方法(remove,pop,del)

    這篇文章主要介紹了python刪除列表元素的三種方法(remove,pop,del),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-07-07
  • 詳解Python的Django框架中inclusion_tag的使用

    詳解Python的Django框架中inclusion_tag的使用

    這篇文章主要介紹了詳解Python的Django框架中inclusion_tag的使用,文中示例基于Python較早的2.x版本,希望能夠注意一下,需要的朋友可以參考下
    2015-07-07
  • 使用Python和NLTK進行文本預(yù)處理示例詳解

    使用Python和NLTK進行文本預(yù)處理示例詳解

    文將介紹如何使用Python編程語言和NLTK(Natural Language Toolkit)庫進行文本預(yù)處理,為后續(xù)的文本分析和機器學(xué)習任務(wù)做準備,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • Flask??使用Gunicorn部署服務(wù)介紹

    Flask??使用Gunicorn部署服務(wù)介紹

    這篇文章主要分享了?Flask??使用Gunicorn部署服務(wù)介紹,F(xiàn)lask?雖然自帶?Web?服務(wù)器,但是該服務(wù)器性能較低,是單進程單線程模型,原本是供開發(fā)測試使用。所以我們在生產(chǎn)環(huán)境中需要使用?Gunicorn?這樣高性能服務(wù)器部署Flask服務(wù),想了解更多內(nèi)容,請參考下面詳細內(nèi)容
    2021-11-11

最新評論