中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

Python中怎么用Matplotlib創建柱狀圖

小編給大家分享一下Python中怎么用Matplotlib創建柱狀圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創新互聯建站是一家專業提供加查企業網站建設,專注與成都網站制作、成都網站建設、H5響應式網站、小程序制作等業務。10年已為加查眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。

如何用Matplotlib創建柱狀圖。

import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

plt.style.use("ggplot")

1. 基礎柱狀圖

柱狀圖(bar chart): 用長方形(柱子)的長度表示數值的統計圖表,又稱為條形圖。柱狀圖常用來對比兩個以上的數值,適用于較小的數據集。

Matplotlib創建柱狀圖的接口:bar(x, height, width, bottom, align, color)

  • x: 柱子的x軸坐標

  • height: 柱子高度,y軸坐標

  • width: 柱子寬度,默認0.8

  • bottom: 柱子底部的y軸坐標,默認為0

  • align: 柱子與x軸坐標的對齊方式,默認'center'

  • color: 柱子顏色

  • orientation: 柱子方向,'horizontal' or 'vertical'

bar()默認創建垂直柱狀圖,barh()可創建水平柱狀圖,原理基本一致。

# 虛擬數據
x = ["A", "B", "C", "D", "E", "F", "G", "H"]
y = [150, 85.2, 65.2, 85, 45, 120, 51, 64]

# 柱狀圖和散點圖不同,散點圖的(x,y)均為數值變量
# 柱狀圖的x軸顯示分類變量,有兩種處理方式
# 方式1:自己創建x軸坐標,并提供對應的標簽
# 方式2:讓Matplotlib自動完成映射

# 方式1
# xticks = np.arange(len(x))  # 每根柱子的x軸坐標
# xlabels = x  # 每根柱子的標簽
# fig, ax = plt.subplots(figsize=(10, 7))
# ax.bar(x=xticks, height=y, tick_label=xlabels)

# 方式2(推薦)
fig, ax = plt.subplots(figsize=(10, 7))
ax.bar(x=x, height=y)
ax.set_title("Simple Bar Plot", fontsize=15)

Python中怎么用Matplotlib創建柱狀圖

2. 調整樣式

Matplotlib創建圖表的優勢在于,用戶可以定制每一個細節,接下來調整柱狀圖的樣式,包括改變柱子的寬度,對齊方式和顏色,以及如何把數值添加到圖表中。

x = ["A", "B", "C", "D", "E", "F", "G", "H"]
y = [150, 85.2, 65.2, 85, 45, 120, 51, 64]

fig, ax = plt.subplots(figsize=(10, 7))
ax.bar(
    x=x,  # Matplotlib自動將非數值變量轉化為x軸坐標
    height=y,  # 柱子高度,y軸坐標
    width=0.6,  # 柱子寬度,默認0.8,兩根柱子中心的距離默認為1.0
    align="center",  # 柱子的對齊方式,'center' or 'edge'
    color="grey",  # 柱子顏色
    edgecolor="red",  # 柱子邊框的顏色
    linewidth=2.0  # 柱子邊框線的大小
)
ax.set_title("Adjust Styles of Bar plot", fontsize=15)

# 一個常見的場景是:每根柱子上方添加數值標簽
# 步驟:
# 1. 準備要添加的標簽和坐標
# 2. 調用ax.annotate()將文本添加到圖表
# 3. 調整樣式,例如標簽大小,顏色和對齊方式
xticks = ax.get_xticks()
for i in range(len(y)):
    xy = (xticks[i], y[i] * 1.03)
    s = str(y[i])
    ax.annotate(
        s=s,  # 要添加的文本
        xy=xy,  # 將文本添加到哪個位置
        fontsize=12,  # 標簽大小
        color="blue",  # 標簽顏色
        ha="center",  # 水平對齊
        va="baseline">

Python中怎么用Matplotlib創建柱狀圖

3. 堆積柱狀圖

有時候想在同一根柱子上顯示兩個不同的數值,即所謂堆積柱狀圖(stacked bar chart)。

假設一個場景,有6家門店,每家門店都銷售三種產品,用堆積柱狀圖顯示每家門店三種產品的銷量。

shops = ["A", "B", "C", "D", "E", "F"]
sales_product_1 = [100, 85, 56, 42, 72, 15]
sales_product_2 = [50, 120, 65, 85, 25, 55]
sales_product_3 = [20, 35, 45, 27, 55, 65]

fig, ax = plt.subplots(figsize=(10, 7))
# 先創建一根柱子,顯示第一種產品的銷量
ax.bar(shops, sales_product_1, color="red", label="Product_1")
# 第二根柱子“堆積”在第一根柱子上方,通過'bottom'調整,顯示第二種產品的銷量
ax.bar(shops, sales_product_2, color="blue", bottom=sales_product_1, label="Product_2")
# 第三根柱子“堆積”在第二根柱子上方,通過'bottom'調整,顯示第三種產品的銷量
ax.bar(shops, sales_product_3, color="green", 
       bottom=np.array(sales_product_2) + np.array(sales_product_1), label="Product_3")

ax.set_title("Stacked Bar plot", fontsize=15)
ax.set_xlabel("Shops")
ax.set_ylabel("Product Sales")
ax.legend()

4. 分組柱狀圖

分組柱狀圖的原理跟堆積柱狀圖類似,但柱子不再是堆疊在一起,而是在相同的X軸標簽上分成幾根更窄的柱子,這些柱子都屬于同一個組。

沿用上面的案例。

shops = ["A", "B", "C", "D", "E", "F"]
sales_product_1 = [100, 85, 56, 42, 72, 15]
sales_product_2 = [50, 120, 65, 85, 25, 55]
sales_product_3 = [20, 35, 45, 27, 55, 65]

# 創建分組柱狀圖,需要自己控制x軸坐標
xticks = np.arange(len(shops))

fig, ax = plt.subplots(figsize=(10, 7))
# 所有門店第一種產品的銷量,注意控制柱子的寬度,這里選擇0.25
ax.bar(xticks, sales_product_1, width=0.25, label="Product_1", color="red")
# 所有門店第二種產品的銷量,通過微調x軸坐標來調整新增柱子的位置
ax.bar(xticks + 0.25, sales_product_2, width=0.25, label="Product_2", color="blue")
# 所有門店第三種產品的銷量,繼續微調x軸坐標調整新增柱子的位置
ax.bar(xticks + 0.5, sales_product_3, width=0.25, label="Product_3", color="green")

ax.set_title("Grouped Bar plot", fontsize=15)
ax.set_xlabel("Shops")
ax.set_ylabel("Product Sales")
ax.legend()

# 最后調整x軸標簽的位置
ax.set_xticks(xticks + 0.25)
ax.set_xticklabels(shops)

Python中怎么用Matplotlib創建柱狀圖

以上是“Python中怎么用Matplotlib創建柱狀圖”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

網頁標題:Python中怎么用Matplotlib創建柱狀圖
URL地址:http://m.2m8n56k.cn/article8/poocip.html

成都網站建設公司_創新互聯,為您提供用戶體驗定制網站服務器托管靜態網站外貿建站品牌網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站
主站蜘蛛池模板: 欧美精品99久久久久久人 | 免费乱人伦 | 精品无人区一区二区三区a 精品午夜国产在线观看不卡 | 久久久久国产成人精品 | 国产成年女一区二区三区 | 香蕉久久久 | 成人免费网站在线观看 | 亚洲欧美日韩成人一区在线 | 一级爱 | 亚洲自拍偷拍图 | 亚洲日本中文字幕在线 | 国产亚洲精品自在久久77 | 日本免费高清一区 | 亚洲精品视频在线 | 国产日韩一区二区三区在线播放 | 欧美成人精品高清在线观看 | 偷柏自拍亚洲欧美综合在线图 | 思99re久久这里只有精品首页 | 91最新地址永久入口 | 欧美一区二区三区在线播放 | 毛片高清一区二区三区 | 精品videosex性欧美 | 一级女性黄 色生活片 | 九九热视频精品在线观看 | 中文字幕成人免费视频 | 久草久在线| 怡红院爽妇网 | 成人免费视频一区二区 | 欧美在线播放成人免费 | a亚洲| 日本天堂网在线 | 久草视频手机在线观看 | 91人碰 | 深夜福利视频在线观看免费播放 | 99国产精品热久久久久久夜夜嗨 | 精品精品国产欧美在线观看 | 伊人青 | 亚洲欧美视频二区 | 亚洲色视频在线播放网站 | 九草视频在线 | 三级大片网站 |