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

python繪制橫豎條形圖的方法

 更新時(shí)間:2022年04月21日 09:34:52   作者:一只會(huì)飛的豬?  
這篇文章主要為大家詳細(xì)介紹了python繪制橫豎條形圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

條形圖是用寬度相同的條形的高度或長(zhǎng)短來表示數(shù)據(jù)多少的圖形。用來繪制離散的數(shù)據(jù),能夠一眼看出各個(gè)數(shù)據(jù)的大小,比較數(shù)據(jù)之間的差異。

繪制一個(gè)簡(jiǎn)單的條形圖與折線圖的繪制方法也是大體一致,只需要把擬合方式plt.plot()修改為plt.bar()即可。例如繪制2017年內(nèi)地電影票房前20的電影和電影票房數(shù)據(jù),如何對(duì)數(shù)據(jù)進(jìn)行可視化分析呢?無疑是進(jìn)行條形圖分析。

老規(guī)矩,上代碼:

# coding =utf-8
from matplotlib import pyplot as plt
from matplotlib import font_manager
?
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\MSYHL.TTC")
?
a = ['戰(zhàn)狼2', '速度與激情8', '功夫瑜伽', '西游伏妖篇', '變形金剛5:最后的騎士', '摔跤吧,爸爸',
'加勒比海盜5:死無對(duì)證', '金剛:骷髏島', '極限特工:終極回歸', '生化危機(jī)6:終章', '乘風(fēng)破浪',
'神偷奶爸3', '智取威虎山', '大鬧天竺', '金剛狼3:殊死一戰(zhàn)', '蜘蛛俠:英雄歸來', '悟空傳', '銀河護(hù)衛(wèi)隊(duì)2',
'情圣', '新木乃伊']
?
b = [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]
?
# 設(shè)置圖像大小
plt.figure(figsize=(20, 15), dpi=80)
?
# 繪制條形圖
plt.bar(range(len(a)), b, width=1)
?
# 設(shè)置字符串到X軸
plt.xticks(range(len(a)), a, fontproperties=my_font, rotation=90)
?
# 顯示圖形
plt.show()

結(jié)果如下:

程序分析:可以看出,繪制的方法與折線圖、散點(diǎn)圖大體一致,只是把擬合的方式改成了plt.bar(),其余的大體一致。不過需要注意的是這個(gè)散點(diǎn)圖需要設(shè)置每個(gè)條柱的寬度不能超過1,否則會(huì)出現(xiàn)混疊!

大家可以發(fā)現(xiàn),這個(gè)電影的名字在下方并不好看,對(duì)做數(shù)據(jù)分析的人并不友好,那么就需要將上述的豎條形圖轉(zhuǎn)變成橫條形圖。具體方法很簡(jiǎn)單,只需要將豎條形圖的plt.bar()改為plt.barh()即可。完整代碼如下:

# coding =utf-8
from matplotlib import pyplot as plt
from matplotlib import font_manager
?
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\MSYHL.TTC")
?
a = ['戰(zhàn)狼2', '速度與激情8', '功夫瑜伽', '西游伏妖篇', '變形金剛5:最后的騎士', '摔跤吧,爸爸',
'加勒比海盜5:死無對(duì)證', '金剛:骷髏島', '極限特工:終極回歸', '生化危機(jī)6:終章', '乘風(fēng)破浪',
'神偷奶爸3', '智取威虎山', '大鬧天竺', '金剛狼3:殊死一戰(zhàn)', '蜘蛛俠:英雄歸來', '悟空傳', '銀河護(hù)衛(wèi)隊(duì)2',
'情圣', '新木乃伊']
?
b = [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]
?
# 設(shè)置圖像大小
plt.figure(figsize=(20,8),dpi=80)
?
# 繪制條形圖
plt.barh(range(len(a)), b, height=0.3, color='orange') ?# 區(qū)別于豎的條形圖 不能使用width
?
# 設(shè)置字符串到X軸
plt.yticks(range(len(a)), a, fontproperties=my_font)
?
plt.grid(alpha=0.3)
?
# 保存圖片
plt.savefig('./movie.png')
?
# 顯示圖形
plt.show()

運(yùn)行結(jié)果如下:

可以看得出,橫條形圖在這里效果比豎條形圖效果好,更容易觀測(cè)與分析。使用時(shí)需要根據(jù)實(shí)際情況進(jìn)行斟酌,合理選取。

那么問題又來了,如果我們知道了四部電影:猩球崛起3:終極之戰(zhàn)、敦煌爾克、蜘蛛俠:英雄歸來、戰(zhàn)狼2在三天之內(nèi)的票房數(shù)目,想知道電影本身在這三天自己的票房變化,怎么來繪制條形圖呢?

先上代碼:

from matplotlib import pyplot as plt
from matplotlib import font_manager
?
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\MSYHL.TTC")
?
a = ['猩球崛起3:終極之戰(zhàn)', '敦刻爾克', '蜘蛛俠:英雄歸來', '戰(zhàn)狼2']
b_16 = [15746, 312, 4497, 319]
b_15 = [12357, 156, 2045, 168]
b_14 = [2358, 399, 2358, 362]
?
bar_width = 0.2 # 乘以3小于1
?
# 設(shè)置相鄰的寬度
x_14 =list(range(len(a)))
x_15 = [i+bar_width for i in x_14]
x_16 = [i+bar_width*2 for i in x_14]
?
# 設(shè)置圖像大小
plt.figure(figsize=(20,8),dpi=80)
?
# 設(shè)置X軸
plt.xticks(x_15,a,fontproperties=my_font)
?
# 繪制圖像 設(shè)置條形圖寬度
plt.bar(range(len(a)), b_14, width=bar_width, label='9月14日')
plt.bar(x_15, b_15, width=bar_width, label='9月15日')
plt.bar(x_16, b_16, width=bar_width, label='9月16日')
?
# 設(shè)置圖例
plt.legend(prop=my_font)
?
# 顯示圖像
plt.show()

運(yùn)行結(jié)果如下:

程序分析:可以看出來,上圖很好的完成了題目的要求。猩球崛起3:終極之戰(zhàn)的三日票房最高,同時(shí)三日票房總數(shù)呈現(xiàn)上升趨勢(shì);敦刻爾克與戰(zhàn)狼2的電影票房總體都比較低;蜘蛛俠:英雄歸來的票房雖然不多,但有上升趨勢(shì),票房數(shù)目中等。那么是怎么進(jìn)行操作的呢?相當(dāng)于在一幅圖中繪制三個(gè)直方圖,也就是四個(gè)電影在三天的票房數(shù)目。通過將寬度設(shè)置,實(shí)現(xiàn)三個(gè)直方圖的無縫連接,使得形成一部電影在三天的票房數(shù)目的對(duì)比效果。即第一個(gè)條形圖開始,第二個(gè)條形圖起始點(diǎn)加上一個(gè)條形圖的寬度,第三個(gè)條形圖加上兩個(gè)條形圖的寬度,然后形成三個(gè)直方圖的剛好契合。需要注意的是:這個(gè)每個(gè)直方圖的寬度不能超過1/3,也就是三個(gè)重疊在一起寬度不能超過1,否則會(huì)形成條形圖混疊。如下圖:

總結(jié):條形圖繪制的要點(diǎn)就是使用plt.bar()或者plt.barh(),一定要注意條形圖寬度的設(shè)置,不能超過1,否則會(huì)混疊,影響效果,達(dá)不到目標(biāo)要求。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MAC下Anaconda+Pyspark安裝配置詳細(xì)步驟

    MAC下Anaconda+Pyspark安裝配置詳細(xì)步驟

    一般MAC上使用的是zsh的shell工具,需要修改zshrc文件來使環(huán)境變量永久生效(若不修改該文件,在命令行中輸入相應(yīng)的命令即可,本文給大家介紹MAC下Anaconda+Pyspark安裝配置詳細(xì)步驟,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Python實(shí)現(xiàn)電腦壁紙的采集與輪換效果

    Python實(shí)現(xiàn)電腦壁紙的采集與輪換效果

    這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)電腦壁紙的采集以及輪換效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-04-04
  • 淺談Python中的閉包

    淺談Python中的閉包

    簡(jiǎn)單說,閉包就是根據(jù)不同的配置信息得到不同的結(jié)果。再來看看專業(yè)的解釋:閉包(Closure)是詞法閉包(Lexical Closure)的簡(jiǎn)稱,是引用了自由變量的函數(shù)。這個(gè)被引用的自由變量將和這個(gè)函數(shù)一同存在,即使已經(jīng)離開了創(chuàng)造它的環(huán)境也不例外。
    2015-07-07
  • 解決項(xiàng)目pycharm能運(yùn)行,在終端卻無法運(yùn)行的問題

    解決項(xiàng)目pycharm能運(yùn)行,在終端卻無法運(yùn)行的問題

    今天小編就為大家分享一篇解決項(xiàng)目pycharm能運(yùn)行,在終端卻無法運(yùn)行的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python小白必備的8個(gè)最常用的內(nèi)置函數(shù)(推薦)

    Python小白必備的8個(gè)最常用的內(nèi)置函數(shù)(推薦)

    這篇文章主要介紹了Python常用的內(nèi)置函數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python+tkinter實(shí)現(xiàn)高清圖片保存

    Python+tkinter實(shí)現(xiàn)高清圖片保存

    作為愛玩電腦的你是不是也需要經(jīng)常更換一下自己的電腦壁紙呢?但是在網(wǎng)上有很多心儀的圖片想要保存下來,如果一張張的去保存那效率又低。所以本文用Python寫一個(gè)保存圖片的功能,把我們的圖片給保存到我們的電腦,需要的可以參考一下
    2022-03-03
  • matplotlib subplots 設(shè)置總圖的標(biāo)題方法

    matplotlib subplots 設(shè)置總圖的標(biāo)題方法

    今天小編就為大家分享一篇matplotlib subplots 設(shè)置總圖的標(biāo)題方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python交互式圖形編程的實(shí)現(xiàn)

    Python交互式圖形編程的實(shí)現(xiàn)

    這篇文章主要介紹了Python交互式圖形編程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python的Pandas時(shí)序數(shù)據(jù)詳解

    Python的Pandas時(shí)序數(shù)據(jù)詳解

    這篇文章主要為大家詳細(xì)介紹了Pandas時(shí)序數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)填充和步幅的理解

    Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)填充和步幅的理解

    這篇文章主要介紹了Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)填充和步幅的理解
    2021-10-10

最新評(píng)論