python數(shù)據(jù)可視化之條形圖畫法
什么是條形圖?
條形圖(bar chart)是用寬度相同的條形的高度或長短來表示數(shù)據(jù)多少的圖形。條形圖可以橫置或縱置,縱置時(shí)也稱為柱形圖(column chart)。此外,條形圖有簡單條形圖、復(fù)式條形圖等形式。
簡單來說,條形圖的寬度一般是相同的,條形的高度或長短表示數(shù)據(jù)的多少,這也就是條形圖和直方圖的本質(zhì)區(qū)別。
第一種畫法
import numpy as np from pandas import DataFrame # 由于我們的x軸上刻度值是中文 需要使用這個(gè)包 進(jìn)行中文的顯示 from matplotlib.pyplot import rcParams # 顯示中文 ?kaiti 表示 楷體 rcParams['font.sans-serif'] = 'kaiti' # 條形圖(縱向) df = DataFrame(data=np.random.randint(50,100,size=(3,3)), ? ? ? ? ? ? ? ?index=['張三','李四','王五'], ? ? ? ? ? ? ? ?columns=['Python','En','Math'] ? ? ? ? ? ? ? ) df.plot(kind='bar',fontsize=20) # 運(yùn)行結(jié)果如下圖:
第二種畫法
import numpy as np import matplotlib.pyplot as plt %matplotlib inline x = ['張三','李四','王五'] height = np.random.randint(80,100,size=3) plt.bar(x,height,width=0.2) height = np.random.randint(50,80,size=3) plt.bar(x,height,width=0.2) height = np.random.randint(10,80,size=3) plt.bar(x,height,width=0.2) # 設(shè)置圖例 ?ncol 表示一行顯示3個(gè)圖例 ?loc 設(shè)置圖例的位置 plt.legend(['數(shù)學(xué)成績','Python成績','英語成績'],ncol=3,loc=(0,1)) # 運(yùn)行結(jié)果如下:
第三種畫法
使用pyecharts,pyecharts 是一個(gè)用于生成 Echarts 圖表的類庫。Echarts 是百度開源的一個(gè)數(shù)據(jù)可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒,為了與 Python 進(jìn)行對接,方便在 Python 中直接使用數(shù)據(jù)生成圖,簡單便捷,可視化效果很棒,讓我們來一起看看吧~。
import numpy as np from pyecharts.charts import Bar from pyecharts import options as opts # V1 版本開始支持鏈?zhǔn)秸{(diào)用 bar = ( ? ? Bar() ? ? .add_xaxis(['張三','李四','王五']) ? ? # 這里需要注意 y軸上傳遞的只能是列表 不能是數(shù)組,如果是數(shù)組 數(shù)據(jù)無法顯示 ? ? .add_yaxis("python成績",np.random.randint(40,100,size=3).tolist()) ? ? ? .add_yaxis("數(shù)學(xué)成績",np.random.randint(40,100,size=3).tolist()) ? ? .add_yaxis("英語成績",np.random.randint(40,100,size=3).tolist()) ? ? .set_global_opts(title_opts=opts.TitleOpts(title="某大學(xué)大三學(xué)生成績條形圖",subtitle='K班級(jí)')) ? ? ? ) # 如果不習(xí)慣鏈?zhǔn)秸{(diào)用的可以使用常規(guī)操作 ''' bar = Bar() bar.add_xaxis(['張三','李四','王五']) bar.add_yaxis("python成績",np.random.randint(40,100,size=3).tolist())? bar.add_yaxis("數(shù)學(xué)成績",np.random.randint(40,100,size=3).tolist())? bar.add_yaxis("英語成績",np.random.randint(40,100,size=3).tolist()) bar.set_global_opts(title_opts=opts.TitleOpts(title="某大學(xué)大三學(xué)生成績條形圖",subtitle='K班級(jí)')) ''' # 在 jupyter notebook上輸出 bar.render_notebook() # 也可以渲染到本地html文件 # bar.render('./成績.html') # 運(yùn)行結(jié)果如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python如何運(yùn)用pyaudio庫去做一個(gè)固定采樣率音頻錄制器
這篇文章主要介紹了Python如何運(yùn)用pyaudio庫去做一個(gè)固定采樣率音頻錄制器問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Python?Pygame實(shí)戰(zhàn)之紅心大戰(zhàn)游戲的實(shí)現(xiàn)
說起Windows自帶的游戲,相信許多80、90后的朋友都不陌生。本文就將利用Python中的Pygame模塊實(shí)現(xiàn)一下windows經(jīng)典游戲之一的紅心大戰(zhàn),需要的可以參考一下2022-02-02通過Python腳本+Jenkins實(shí)現(xiàn)項(xiàng)目重啟
Jenkins是一個(gè)流行的開源自動(dòng)化服務(wù)器,用于快速構(gòu)建、測試和部署軟件,本文主要介紹了通過Python腳本+Jenkins實(shí)現(xiàn)項(xiàng)目重啟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10Python實(shí)現(xiàn)的文本對比報(bào)告生成工具示例
這篇文章主要介紹了Python實(shí)現(xiàn)的文本對比報(bào)告生成工具,涉及Python基于difflib模塊實(shí)現(xiàn)對文本內(nèi)容進(jìn)行對比的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類的定義、實(shí)例化、封裝及私有變量/方法詳解
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類的定義、實(shí)例化、封裝及私有變量/方法,結(jié)合具體實(shí)例形式較為詳細(xì)的分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類的定義、實(shí)例化、封裝、私有變量、私有方法等相關(guān)使用技巧,需要的朋友可以參考下2019-02-02