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

python?Matplotlib繪制炫酷柱狀圖的藝術(shù)與技巧大全

 更新時(shí)間:2024年03月02日 11:05:11   作者:一見(jiàn)已難忘的申公豹  
柱狀圖(Bar Plot)是一種常用的數(shù)據(jù)可視化方式,用于顯示各個(gè)類(lèi)別之間的比較,下面這篇文章主要給大家介紹了關(guān)于python?Matplotlib繪制炫酷柱狀圖的藝術(shù)與技巧大全,需要的朋友可以參考下

前言

當(dāng)今數(shù)據(jù)可視化領(lǐng)域,Matplotlib是Python中最為流行的繪圖庫(kù)之一。它提供了豐富的功能和靈活的選項(xiàng),使得用戶能夠創(chuàng)建各種類(lèi)型的圖表。本文將介紹Matplotlib庫(kù)中繪制不同種類(lèi)炫酷柱狀圖的技術(shù),包括簇狀柱狀圖、堆積柱狀圖、橫向柱狀圖、百分比柱狀圖以及3D柱狀圖。

1. 簇狀柱狀圖

簇狀柱狀圖是將多個(gè)柱狀圖并列在同一組,方便比較不同類(lèi)別之間的數(shù)據(jù)。下面是一個(gè)簡(jiǎn)單的代碼示例:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values1 = [5, 7, 9]
values2 = [6, 8, 10]

bar_width = 0.35
index = np.arange(len(categories))

plt.bar(index, values1, bar_width, label='Group 1')
plt.bar(index + bar_width, values2, bar_width, label='Group 2')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Clustered Bar Chart')
plt.xticks(index + bar_width / 2, categories)
plt.legend()
plt.show()

2. 堆積柱狀圖

堆積柱狀圖用于展示總體和各組成部分之間的關(guān)系。以下是一個(gè)堆積柱狀圖的代碼示例:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values1 = [5, 7, 9]
values2 = [3, 6, 8]

plt.bar(categories, values1, label='Group 1')
plt.bar(categories, values2, bottom=values1, label='Group 2')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Stacked Bar Chart')
plt.legend()
plt.show()

3. 橫向柱狀圖

橫向柱狀圖在一些情境下更適合,可以通過(guò)barh函數(shù)實(shí)現(xiàn):

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values = [5, 7, 9]

plt.barh(categories, values)

plt.xlabel('Values')
plt.ylabel('Categories')
plt.title('Horizontal Bar Chart')
plt.show()

4. 百分比柱狀圖

百分比柱狀圖可以通過(guò)將每個(gè)值除以總和來(lái)實(shí)現(xiàn)。以下是一個(gè)簡(jiǎn)單的例子:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values = [20, 30, 50]

total = sum(values)
percentages = [(value / total) * 100 for value in values]

plt.bar(categories, percentages)

plt.xlabel('Categories')
plt.ylabel('Percentage')
plt.title('Percentage Bar Chart')
plt.show()

5. 3D柱狀圖

Matplotlib還支持繪制3D柱狀圖,可以通過(guò)bar3d函數(shù)實(shí)現(xiàn):

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values = [5, 7, 9]

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

xpos = np.arange(len(categories))
ypos = [1] * len(categories)

ax.bar3d(xpos, ypos, np.zeros(len(categories)), 0.8, 0.8, values)

ax.set_xlabel('Categories')
ax.set_ylabel('Y')
ax.set_zlabel('Values')
ax.set_title('3D Bar Chart')
plt.show()

以上是一些Matplotlib庫(kù)中繪制不同種類(lèi)炫酷柱狀圖的基本技術(shù)。通過(guò)靈活運(yùn)用這些技術(shù),你可以根據(jù)實(shí)際需求創(chuàng)建更加豐富多彩的柱狀圖表。

6. 堆積橫向柱狀圖

堆積橫向柱狀圖同樣可以通過(guò)barh函數(shù)實(shí)現(xiàn),不過(guò)需要調(diào)整參數(shù)來(lái)實(shí)現(xiàn)堆積效果:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values1 = [5, 7, 9]
values2 = [3, 6, 8]

plt.barh(categories, values1, label='Group 1')
plt.barh(categories, values2, left=values1, label='Group 2')

plt.xlabel('Values')
plt.ylabel('Categories')
plt.title('Stacked Horizontal Bar Chart')
plt.legend()
plt.show()

7. 多系列百分比柱狀圖

當(dāng)需要比較多個(gè)系列的百分比時(shí),可以將每個(gè)系列的百分比進(jìn)行堆積展示:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values1 = [20, 30, 50]
values2 = [10, 40, 50]

total1 = sum(values1)
total2 = sum(values2)
percentages1 = [(value / total1) * 100 for value in values1]
percentages2 = [(value / total2) * 100 for value in values2]

plt.bar(categories, percentages1, label='Group 1')
plt.bar(categories, percentages2, bottom=percentages1, label='Group 2')

plt.xlabel('Categories')
plt.ylabel('Percentage')
plt.title('Stacked Percentage Bar Chart')
plt.legend()
plt.show()

8. 3D堆積柱狀圖

Matplotlib的3D繪圖工具同樣支持堆積效果,可以通過(guò)調(diào)整參數(shù)來(lái)實(shí)現(xiàn):

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values1 = [5, 7, 9]
values2 = [3, 6, 8]

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

xpos = np.arange(len(categories))
ypos = [1] * len(categories)

ax.bar3d(xpos, ypos, np.zeros(len(categories)), 0.8, 0.8, values1, label='Group 1')
ax.bar3d(xpos, ypos, np.zeros(len(categories)), 0.8, 0.8, values2, bottom=values1, label='Group 2')

ax.set_xlabel('Categories')
ax.set_ylabel('Y')
ax.set_zlabel('Values')
ax.set_title('3D Stacked Bar Chart')
ax.legend()
plt.show()

以上代碼示例展示了如何使用Matplotlib庫(kù)繪制不同種類(lèi)炫酷柱狀圖。通過(guò)這些例子,你可以靈活運(yùn)用Matplotlib的強(qiáng)大功能,根據(jù)實(shí)際需求繪制出多樣化的柱狀圖表。希望這些例子能夠幫助你更好地理解和使用Matplotlib庫(kù)。

9. 帶有誤差線的柱狀圖

有時(shí)候,為了更全面地呈現(xiàn)數(shù)據(jù),我們需要在柱狀圖上添加誤差線。以下是一個(gè)帶有誤差線的簡(jiǎn)單示例:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values = [5, 7, 9]
errors = [0.5, 0.8, 0.2]

plt.bar(categories, values, yerr=errors, capsize=5, label='Values with Error')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Bar Chart with Error Bars')
plt.legend()
plt.show()

10. 分組百分比柱狀圖

有時(shí)候需要比較不同組的百分比,可以通過(guò)調(diào)整寬度和位置實(shí)現(xiàn)分組效果:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values_group1 = [20, 30, 50]
values_group2 = [15, 25, 60]

total_group1 = sum(values_group1)
total_group2 = sum(values_group2)
percentages_group1 = [(value / total_group1) * 100 for value in values_group1]
percentages_group2 = [(value / total_group2) * 100 for value in values_group2]

bar_width = 0.35
index = np.arange(len(categories))

plt.bar(index, percentages_group1, bar_width, label='Group 1')
plt.bar(index + bar_width, percentages_group2, bar_width, label='Group 2')

plt.xlabel('Categories')
plt.ylabel('Percentage')
plt.title('Grouped Percentage Bar Chart')
plt.xticks(index + bar_width / 2, categories)
plt.legend()
plt.show()

11. 水平堆積柱狀圖

水平堆積柱狀圖可以通過(guò)調(diào)整參數(shù)實(shí)現(xiàn)。以下是一個(gè)簡(jiǎn)單的水平堆積柱狀圖的代碼示例:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values1 = [5, 7, 9]
values2 = [3, 6, 8]

plt.barh(categories, values1, label='Group 1')
plt.barh(categories, values2, left=values1, label='Group 2')

plt.xlabel('Values')
plt.ylabel('Categories')
plt.title('Horizontal Stacked Bar Chart')
plt.legend()
plt.show()

12. 多面板柱狀圖

如果你希望在同一圖中展示多個(gè)柱狀圖,并對(duì)它們進(jìn)行比較,可以使用多面板柱狀圖。以下是一個(gè)簡(jiǎn)單的例子:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values1 = [5, 7, 9]
values2 = [3, 6, 8]

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))

ax1.bar(categories, values1, label='Group 1')
ax1.bar(categories, values2, bottom=values1, label='Group 2')
ax1.set_title('Grouped Bar Chart')

ax2.barh(categories, values1, label='Group 1')
ax2.barh(categories, values2, left=values1, label='Group 2')
ax2.set_title('Grouped Horizontal Bar Chart')

plt.legend()
plt.show()

13. 自定義顏色和樣式

你可以通過(guò)傳遞顏色參數(shù)來(lái)自定義柱狀圖的顏色。此外,你還可以設(shè)置柱體的樣式,例如邊框?qū)挾取⑦吙蝾伾?。以下是一個(gè)簡(jiǎn)單的例子:

import matplotlib.pyplot as plt
import numpy as np

categories = ['Category A', 'Category B', 'Category C']
values = [5, 7, 9]

plt.bar(categories, values, color=['blue', 'orange', 'green'], edgecolor='black', linewidth=2)

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Customized Bar Chart')
plt.show()

總結(jié)

在本文中,我們深入探討了使用Matplotlib庫(kù)繪制各種炫酷柱狀圖的技術(shù)。從基本的簇狀柱狀圖、堆積柱狀圖、橫向柱狀圖、百分比柱狀圖,到更高級(jí)的3D柱狀圖、水平堆積柱狀圖、多面板柱狀圖等,提供了多個(gè)實(shí)用的代碼示例。

通過(guò)這些示例,讀者可以學(xué)到如何使用Matplotlib庫(kù)的不同函數(shù)和參數(shù)來(lái)繪制不同類(lèi)型的柱狀圖。我們還介紹了一些自定義技巧,包括添加誤差線、調(diào)整顏色和樣式,以及繪制多面板柱狀圖等。

總體而言,Matplotlib是一個(gè)功能強(qiáng)大的數(shù)據(jù)可視化工具,通過(guò)掌握其中的技術(shù),用戶可以根據(jù)實(shí)際需求創(chuàng)造出更具表現(xiàn)力和可讀性的圖表。希望本文的代碼示例能夠幫助讀者更好地理解和應(yīng)用Matplotlib庫(kù),提高數(shù)據(jù)可視化的效果。如果讀者有其他問(wèn)題,建議查閱Matplotlib官方文檔或向相關(guān)社區(qū)尋求幫助。

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

相關(guān)文章

  • python Pandas庫(kù)基礎(chǔ)分析之時(shí)間序列的處理詳解

    python Pandas庫(kù)基礎(chǔ)分析之時(shí)間序列的處理詳解

    這篇文章主要介紹了python Pandas庫(kù)基礎(chǔ)分析之時(shí)間序列的處理詳解,Pandas作為Python環(huán)境下的數(shù)據(jù)分析庫(kù),更是提供了強(qiáng)大的日期數(shù)據(jù)處理的功能,是處理時(shí)間序列的利器,需要的朋友可以參考下
    2019-07-07
  • 基于Python實(shí)現(xiàn)剪貼板歷史管理工具

    基于Python實(shí)現(xiàn)剪貼板歷史管理工具

    在數(shù)字化時(shí)代,剪貼板是我們?nèi)粘9ぷ髦胁豢苫蛉钡墓ぞ?這篇文章將為大家介紹一下如何使用Python實(shí)現(xiàn)一個(gè)剪貼板歷史管理工具,感興趣的小伙伴可以了解下
    2025-07-07
  • 基于pytorch的RNN實(shí)現(xiàn)字符級(jí)姓氏文本分類(lèi)的示例代碼

    基于pytorch的RNN實(shí)現(xiàn)字符級(jí)姓氏文本分類(lèi)的示例代碼

    當(dāng)使用基于PyTorch的RNN實(shí)現(xiàn)字符級(jí)姓氏文本分類(lèi)時(shí),我們可以使用一個(gè)非常簡(jiǎn)單的RNN模型來(lái)處理輸入的字符序列,并將其應(yīng)用于姓氏分類(lèi)任務(wù),本文給大家舉了一個(gè)基本的示例代碼,需要的朋友可以參考下
    2023-12-12
  • 使用Python和SQLAlchemy實(shí)現(xiàn)高效的郵件發(fā)送系統(tǒng)

    使用Python和SQLAlchemy實(shí)現(xiàn)高效的郵件發(fā)送系統(tǒng)

    在現(xiàn)代Web應(yīng)用中,郵件通知是不可或缺的功能之一,無(wú)論是訂單確認(rèn)、文件處理結(jié)果通知,還是系統(tǒng)告警,郵件都是最常用的通信方式之一,本文將詳細(xì)介紹如何基于 Python、SQLAlchemy 和 SMTP 協(xié)議,構(gòu)建一個(gè)高效、可靠的郵件發(fā)送系統(tǒng),需要的朋友可以參考下
    2025-05-05
  • 如何使用pdb進(jìn)行Python調(diào)試

    如何使用pdb進(jìn)行Python調(diào)試

    本篇教程中,我們主要講解了pdb中一些基本常用的內(nèi)容,包括打印表達(dá)式使用n(next)和s(step)命令調(diào)試代碼斷點(diǎn)使用unt(until)來(lái)繼續(xù)執(zhí)行代碼顯示表達(dá)式查找一個(gè)函數(shù)的調(diào)用者,對(duì)pdb Python調(diào)試相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • python如何生成密碼字典

    python如何生成密碼字典

    這篇文章主要介紹了python如何生成密碼字典,密碼字典主要是配合解密使用,下面利用python實(shí)現(xiàn)生成密碼字典,需要的小伙伴可以參考一下
    2022-03-03
  • Python異步執(zhí)行CMD命令的具體實(shí)現(xiàn)

    Python異步執(zhí)行CMD命令的具體實(shí)現(xiàn)

    異步執(zhí)行CMD命令是提高Python程序性能的有效方法,本文就來(lái)介紹一下Python異步執(zhí)行CMD命令的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Python利用Selenium實(shí)現(xiàn)網(wǎng)站自動(dòng)簽到功能

    Python利用Selenium實(shí)現(xiàn)網(wǎng)站自動(dòng)簽到功能

    小編了解到了python的selenium庫(kù)對(duì)于自動(dòng)化測(cè)試的初學(xué)者很容易上手,今天就借這篇文章給大家介紹Python利用Selenium實(shí)現(xiàn)網(wǎng)站自動(dòng)簽到功能,感興趣的朋友一起看看吧
    2021-09-09
  • Python中線程的MQ消息隊(duì)列實(shí)現(xiàn)以及消息隊(duì)列的優(yōu)點(diǎn)解析

    Python中線程的MQ消息隊(duì)列實(shí)現(xiàn)以及消息隊(duì)列的優(yōu)點(diǎn)解析

    消息隊(duì)列(MQ,Message Queue)在消息數(shù)據(jù)傳輸中的保存作用為數(shù)據(jù)通信提供了保障和實(shí)時(shí)處理上的便利,這里我們就來(lái)看一下Python中線程的MQ消息隊(duì)列實(shí)現(xiàn)以及消息隊(duì)列的優(yōu)點(diǎn)解析
    2016-06-06
  • 深入分析python數(shù)據(jù)挖掘 Json結(jié)構(gòu)分析

    深入分析python數(shù)據(jù)挖掘 Json結(jié)構(gòu)分析

    這篇文章通過(guò)實(shí)例給大家分析總結(jié)了python數(shù)據(jù)挖掘以及Json結(jié)構(gòu)分析的相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友參考下。
    2018-04-04

最新評(píng)論

陇川县| 永登县| 公主岭市| 平阴县| 盐池县| 务川| 轮台县| 光泽县| 三门县| 宜兰市| 西畴县| 分宜县| 文安县| 唐海县| 阿图什市| 兴文县| 荔浦县| 朝阳市| 修武县| 昭平县| 从江县| 盐山县| 新闻| 潼关县| 察隅县| 乌拉特前旗| 玉山县| 正阳县| 都昌县| 万山特区| 犍为县| 丹阳市| 阿克苏市| 景宁| 顺平县| 新郑市| 双柏县| 剑川县| 津南区| 永安市| 襄城县|