每日五個pyecharts可視化圖表-bars(5)

探索pyecharts庫中條形圖的高級用法與定制技巧,打造精美數據可視化圖表在這里插入圖片描述

在數據可視化中,條形圖是最常用的圖表類型之一。它能夠清晰地展示不同類別的數據對比,幫助我們快速理解數據特征。本文將為您介紹pyecharts庫中條形圖的5種高級用法,從基礎到進階,讓您輕松掌握條形圖的各種定制技巧。pyecahts源碼

目錄

    • 圖表一:帶標記線的條形圖(指定類型)
      • 代碼解析
      • 使用場景
    • 圖表二:帶Graphic組件的條形圖
      • 代碼解析
      • 技巧提示
      • 應用場景
    • 圖表三:瀑布圖
      • 代碼解析
      • 實現原理
      • 應用場景
    • 圖表四:漸變圓柱條形圖
      • 代碼解析
      • 設計技巧
      • 應用場景
    • 圖表五:單系列柱間距離條形圖
      • 代碼解析
      • 參數說明
      • 應用場景
      • 注意事項
    • 注意事項與最佳實踐
    • 總結

歡迎來到每日五個pyecharts可視化圖表系列的第五篇。在本文中,我們將繼續探索pyecharts庫中條形圖(Bar)的各種高級用法和定制技巧。

圖表一:帶標記線的條形圖(指定類型)

在數據對比分析中,除了展示原始數據外,我們常常需要突出顯示數據中的關鍵統計指標。本圖表展示了如何在條形圖中添加標記線,包括最小值、最大值和平均值標記,幫助讀者快速把握數據分布特征。

from pyecharts import options as opts 
from pyecharts.charts import Bar 
from pyecharts.faker import Faker c = (Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(指定類型)")) .set_series_opts(label_opts=opts.LabelOpts(is_show=False),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="min", name="最小值"),opts.MarkLineItem(type_="max", name="最大值"),opts.MarkLineItem(type_="average", name="平均值"),]),)
)
c.render_notebook()

代碼解析

  • 數據生成:使用Faker.choose()生成隨機的類別數據作為X軸,Faker.values()生成隨機數值作為Y軸數據
  • 標記線配置:通過markline_opts參數添加標記線,支持多種類型:
    • min: 顯示最小值標記線,幫助快速定位數據中的最低點
    • max: 顯示最大值標記線,突出數據中的峰值
    • average: 顯示平均值標記線,展示數據的集中趨勢
  • 標簽設置:設置label_opts為不顯示標簽,避免標簽過多導致圖表雜亂

使用場景

這種帶標記線的條形圖特別適合于需要快速把握數據分布特征的場景,如銷售數據對比、性能指標分析等。通過標記線,我們可以直觀地看到數據的極值和平均水平,為決策提供參考。
在這里插入圖片描述

圖表二:帶Graphic組件的條形圖

在數據可視化中,有時我們需要為圖表添加一些自定義的圖形元素或文本,以增強圖表的信息傳達能力或視覺效果。pyecharts的Graphic組件提供了強大的自定義圖形功能,讓我們可以在圖表上添加各種圖形元素。

from pyecharts import options as opts 
from pyecharts.charts import Bar 
from pyecharts.commons.utils import JsCode 
from pyecharts.faker import Faker c = (Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-Graphic 組件示例"),graphic_opts=[opts.GraphicGroup(graphic_item=opts.GraphicItem(rotation=JsCode("Math.PI / 4"),bounding="raw",right=110,bottom=110,z=100,),children=[opts.GraphicRect(graphic_item=opts.GraphicItem(left="center", top="center", z=100),graphic_shape_opts=opts.GraphicShapeOpts(width=400, height=50),graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill="rgba(0,0,0,0.3)"),),opts.GraphicText(graphic_item=opts.GraphicItem(left="center", top="center", z=100),graphic_textstyle_opts=opts.GraphicTextStyleOpts(text="pyecharts bar chart",font="bold 26px Microsoft YaHei",graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill="#fff"),),),],)],)
)
c.render_notebook()

代碼解析

  • 數據生成:使用Faker.choose()Faker.values()生成模擬數據
  • 圖形組件配置:通過graphic_opts參數添加圖形元素
  • 圖形組創建:創建了一個GraphicGroup,包含一個旋轉的矩形和文本
  • JavaScript集成:使用JsCode來編寫JavaScript代碼,實現旋轉效果
  • 屬性設置:詳細設置了圖形元素的位置、大小、顏色等屬性
  • 視覺設計:矩形使用半透明黑色背景,文本使用白色粗體字,形成鮮明對比
  • 層級控制:通過z參數設置圖形元素的層級,確保它們顯示在圖表上方

技巧提示

  • 可以通過調整rotation參數來改變圖形的旋轉角度
  • 使用bounding參數可以控制圖形的邊界計算方式
  • 通過調整rightbottom參數可以精確控制圖形的位置
  • 可以添加多個GraphicGroup來創建復雜的圖形組合

應用場景

這種帶Graphic組件的條形圖適合于需要添加水印、注釋或自定義裝飾元素的場景,如報表封面、演示文稿中的圖表展示等。
在這里插入圖片描述

圖表三:瀑布圖

瀑布圖是一種特殊類型的柱狀圖,它能夠清晰地展示一個初始值如何通過一系列正值和負值的累積,最終到達結果值。瀑布圖特別適合展示起始值到最終值的累積過程,在財務分析、銷售數據變化、項目預算等場景中有著廣泛的應用。

from pyecharts.charts import Bar 
from pyecharts import options as opts x_data = [f"11月{str(i)}日" for i in range(1, 12)] 
y_total = [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292] 
y_in = [900, 345, 393, "-", "-", 135, 178, 286, "-", "-", "-"] 
y_out = ["-", "-", "-", 108, 154, "-", "-", "-", 119, 361, 203] bar = (Bar() .add_xaxis(xaxis_data=x_data) .add_yaxis(series_name="", y_axis=y_total, stack="總量", itemstyle_opts=opts.ItemStyleOpts(color="rgba(0,0,0,0)"), ) .add_yaxis(series_name="收入", y_axis=y_in, stack="總量") .add_yaxis(series_name="支出", y_axis=y_out, stack="總量") .set_global_opts(yaxis_opts=opts.AxisOpts(type_="value")) 
)
bar.render_notebook()

代碼解析

  • X軸數據:手動構建了日期數據作為X軸,更符合實際業務場景
  • 系列配置:使用了三個數據系列來實現瀑布圖效果:
    • y_total: 表示累計總量,設置為透明色使其不可見
    • y_in: 表示收入數據,使用正值
    • y_out: 表示支出數據,使用負值
  • 堆疊設置:通過stack="總量"將三個系列堆疊顯示
  • 圖例控制:使用空字符串作為第一個系列的名稱,使其不在圖例中顯示
  • 缺失數據處理:使用"-"表示沒有數據的點
  • 坐標軸設置:設置Y軸為數值型坐標軸

實現原理

瀑布圖的關鍵在于使用堆疊柱狀圖的特性,通過透明的總量系列和正負值的堆疊來展示數據的累積過程。收入數據(正值)向上堆疊,支出數據(負值)向下堆疊,最終形成從起始值到最終值的完整路徑展示。

應用場景

瀑布圖常用于財務分析中的收支分析、銷售數據的增減變化分析、項目預算的構成分析等場景。它能夠清晰地展示各個因素對最終結果的貢獻程度,幫助決策者更好地理解數據背后的故事。
在這里插入圖片描述

圖表四:漸變圓柱條形圖

在數據可視化中,美觀的圖表能夠更好地吸引觀眾的注意力,提升數據傳達的效果。本圖表展示了如何創建具有漸變顏色和圓角效果的圓柱條形圖,通過精美的視覺設計提升數據展示的吸引力。

from pyecharts import options as opts 
from pyecharts.charts import Bar 
from pyecharts.commons.utils import JsCode 
from pyecharts.faker import Faker c = (Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values(), category_gap="60%") .set_series_opts(itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgba(0, 244, 255, 1)'}, {offset: 1,color: 'rgba(0, 77, 167, 1)'}], false)"""),"barBorderRadius": [30, 30, 30, 30],"shadowColor": "rgb(0, 160, 221)",}}) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-漸變圓柱")) 
)
c.render_notebook()

代碼解析

  • 數據生成:使用Faker.choose()Faker.values()生成模擬數據
  • 間距設置:通過category_gap="60%"設置類別之間的間距,使圖表更加通透
  • 樣式配置:使用itemstyle_opts詳細配置條形圖的樣式:
    • color: 使用JsCode創建線性漸變顏色,從頂部的亮藍色到底部的深藍色,形成視覺層次感
    • barBorderRadius: 設置四個角的圓角半徑均為30,實現完美的圓柱效果
    • shadowColor: 添加陰影效果,增強立體感和深度感
  • 標題設置:設置圖表標題為"Bar-漸變圓柱"

設計技巧

  • 漸變顏色的方向可以通過調整LinearGradient的前四個參數來改變
  • 可以嘗試不同的顏色組合,以適應不同的主題和場景
  • 圓角半徑的大小可以根據數據量和圖表尺寸進行調整
  • 陰影效果可以增強圖表的立體感,但不宜過于強烈,以免喧賓奪主

應用場景

這種漸變圓柱條形圖特別適合需要強調視覺效果的演示場合,如產品發布會、營銷報告、數據可視化大屏等。精美的視覺設計能夠讓數據展示更加生動和吸引人,提升觀眾的關注度和理解度。
在這里插入圖片描述

圖表五:單系列柱間距離條形圖

在創建條形圖時,柱間距離的設置對圖表的美觀度和可讀性有著重要影響。本圖表展示了如何調整單系列柱狀圖的柱間距離,以優化圖表的視覺效果和數據展示。

第五個圖表展示了如何設置單系列柱狀圖的柱間距離。通過調整柱間距離,可以使圖表更加美觀,也可以根據數據量的多少來優化展示效果。

from pyecharts import options as opts 
from pyecharts.charts import Bar 
from pyecharts.faker import Faker c = (Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values(), category_gap="80%") .set_global_opts(title_opts=opts.TitleOpts(title="Bar-單系列柱間距離")) #.render("bar_same_series_gap.html") 
)
c.render_notebook()

代碼解析

  • 數據生成:使用Faker.choose()生成隨機的類別數據作為X軸,Faker.values()生成隨機數值作為Y軸數據
  • 柱間距離設置:通過category_gap="80%"設置柱間距離為80%。需要注意的是,對于單系列條形圖,category_gap實際上控制的是類別之間的間距,而不是同一類別中不同系列的間距(因為只有一個系列)
  • 標題設置:設置圖表標題為"Bar-單系列柱間距離"

參數說明

  • category_gap:用于設置類別之間的間距,取值范圍為0到100%。對于多系列條形圖,它控制的是不同類別之間的間距
  • 對于單系列條形圖,如果想要調整柱子的寬度,可以通過bar_width參數來設置

應用場景

調整柱間距離是美化柱狀圖的常用技巧之一:

  • 較大的柱間距離(如80%)可以使圖表看起來更加通透,適合數據量較少、類別較少的情況
  • 較小的柱間距離(如20%)則可以在有限的空間內展示更多數據,適合數據量較大、類別較多的情況
  • 在對比分析中,適當的柱間距離可以增強數據的可讀性和對比效果
    在這里插入圖片描述

注意事項

對于單系列條形圖,category_gap參數的效果可能不如多系列條形圖明顯。如果需要精確控制柱子的寬度,可以考慮使用bar_width參數,該參數可以設置為具體的像素值或百分比。

注意事項與最佳實踐

  1. 環境配置:確保已安裝pyecharts庫:pip install pyecharts。建議使用1.9.0及以上版本以確保代碼兼容性
  2. 版本差異:不同版本的pyecharts可能存在語法差異,本文使用的是1.9.0版本
  3. 運行環境:所有示例代碼均可在Jupyter Notebook中直接運行。如果需要在其他環境中運行,可能需要調整輸出方式
  4. 數據準備:在實際應用中,建議使用真實數據替換Faker生成的模擬數據
  5. 性能優化:對于大規模數據集,建議對數據進行適當采樣或聚合,以提高圖表的渲染性能
  6. 自定義擴展:pyecharts提供了豐富的自定義選項,您可以根據實際需求調整圖表的樣式和功能
  7. 響應式設計:可以通過設置widthheight參數,使圖表適應不同的顯示設備
  8. 導出與分享:使用render()方法可以將圖表導出為HTML文件,方便分享和展示

總結

本文介紹了pyecharts庫中條形圖的5種高級用法,包括帶標記線的條形圖、帶Graphic組件的條形圖、瀑布圖、漸變圓柱條形圖和單系列柱間距離條形圖。通過這些示例,我們學習了如何使用pyecharts創建各種精美的條形圖,并掌握了一些實用的定制技巧。

條形圖是數據可視化中最常用的圖表類型之一,掌握其高級用法能夠幫助我們更好地展示和分析數據。希望本文能夠對您有所幫助,也歡迎您繼續探索pyecharts的其他功能和圖表類型。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92373.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92373.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92373.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分布式版本控制工具Git

一.開發中為什么需要Git因為在多人開發中Git可以管理代碼,而且每個人都可以從庫里面下載代碼進行修改,每個人上傳和修改Git都會有記錄,如果出現大錯誤,還可以回退到正常版本。二.Git原理我們首先從代碼庫(Remote)下載代碼到工作區…

OpenAI重磅開源GPT-oss:首款支持商用的AI Agent專屬模型

今日凌晨,OpenAI宣布開源兩款全新大模型——GPT-oss-120B(1168億參數)與GPT-oss-20B(209億參數),成為全球首個支持商業化應用的開放權重推理模型。該模型專為AI智能體(Agent)設計&am…

【STM32】GPIO的輸入輸出

GPIO是通用的輸入輸出接口,可配置8種輸入模式,輸出模式下可控制端口輸出高低電平,用于點亮LED、控制蜂鳴器、模擬通信協議等;輸入模式下可以讀取端口的高低電平或者電壓,用于讀取按鍵、外接模塊的電平信號、ADC的電壓采…

5分鐘了解OpenCV

在數字化時代,圖像和視頻已經成為信息傳遞的核心載體。從手機拍照的美顏功能到自動駕駛的路況識別,從醫學影像分析到安防監控系統,視覺技術正深刻改變著我們的生活。而在這背后,OpenCV 作為一款強大的開源計算機視覺庫&#xff0c…

Oracle 關閉 impdp任務

Oracle 關閉 impdp任務 執行 impdp system/123456 attachSYS_EXPORT_TABLE_01 執行 stop_jobimmediate

數據結構——鏈表2

1.2 實現單鏈表 在上一篇文章中&#xff0c;單鏈表的實現只有一少部分&#xff0c;這一篇接著來了解單鏈表剩下的接口實現。 SList.h#pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h>//定義單鏈表就是定義節點&#xff0c;因為單鏈表…

Windows和Linux應急響應以及IP封堵

目錄 1、Windows入侵排查思路 1.1 檢查系統賬號安全 1.2 檢查異常端口、進程 1.3 檢查啟動項、計劃任務、服務 1.4 檢查系統相關信息 1.5 自動化查殺 1.6 日志分析 系統日志分析 Web 訪問日志 2、Linux 入侵排查思路 2.1 賬號安全 2.1.1、基本使用 2.1.2、入侵排查…

MIT成果登上Nature!液態神經網絡YYDS

2025深度學習發論文&模型漲點之——液態神經網絡液態神經網絡&#xff08;Liquid Neural Networks&#xff0c;LNN&#xff09;是一種受生物神經系統啟發的連續時間遞歸神經網絡&#xff08;RNN&#xff09;&#xff0c;其核心創新在于將靜態神經網絡轉化為由微分方程驅動的…

AI 對話高效輸入指令攻略(四):AI+Apache ECharts:生成各種專業圖表

- **AI與數據可視化的革命性結合**:介紹AI如何降低數據可視化門檻,提升效率。 - **Apache ECharts:專業可視化的利器**:使用表格對比展示ECharts的特點、優勢和適用場景。 - **四步實現AI驅動圖表生成**:通過分步指南講解從環境準備到圖表優化的全流程,包含多個代碼示例及…

vue2 基礎學習 day04 (結構/樣式/邏輯、組件通信、進階語法)下

一、非父子通信-event bus 事件總線1.作用非父子組件之間&#xff0c;進行簡易消息傳遞。(復雜場景→ Vuex)2.步驟創建一個都能訪問的事件總線 &#xff08;空Vue實例&#xff09;import Vue from vue const Bus new Vue() export default BusA組件&#xff08;接受方&#xf…

ubuntu 20.04 C和C++的標準頭文件都放在哪個目錄?

在 Ubuntu 20.04 中&#xff0c;C 和 C 標準頭文件的存放目錄主要由編譯器&#xff08;如 GCC&#xff09;的安裝路徑決定&#xff0c;通常分為以下兩類&#xff1a;?1. C 標準頭文件?C 語言的標準頭文件&#xff08;如 <stdio.h>、<stdlib.h> 等&#xff09;默認…

change和watch

是的&#xff0c;你理解得很對&#xff01; change 與 v-model 的結合&#xff1a;change 事件通常用于監聽 表單元素的變化&#xff0c;但它并不一定意味著值發生了變化。它主要是當 用戶與輸入框交互時&#xff08;如點擊選項、選擇文本框內容、提交表單等&#xff09;觸發的…

分布式微服務--GateWay(1)

一、什么是微服務網關&#xff08;API Gateway&#xff09; 定義&#xff1a;微服務網關是整個系統請求的統一入口&#xff0c;負責請求轉發、過濾處理、安全校驗等。 作用&#xff1a; 請求路由 日志記錄 權限控制 參數校驗 解決跨域問題 黑白名單控制 限流、熔斷、降級…

大文件斷點續傳(vue+springboot+mysql)

斷點續傳vue前端代碼后端代碼controller 層service層持久層主表&#xff0c;初始化單次上傳文件表&#xff0c;單次上傳所有的文件記錄文件分塊表科普信息參考其他博主 流程圖 vue前端代碼 這里是只做了demo示例&#xff0c;主線測試沒什么問題&#xff0c;前端同學可參考修…

Nodejs》》MySql

Node.js 操作MySQL數據庫 文檔 # 項目要先安裝mysql包npm i mysqlxx // 安裝指定版本npm i mysql // 默認安裝最新版本 # 連接 mysq// 使用連接池連接const mysql require(mysql)# 建立連接const db mysql.createPool({host:, // 數據庫的IP地址user:ro…

金倉數據庫常見問題(持續更新)

目錄 1.查看大小是否敏感寫參數&#xff0c;提示&#xff1a;未認可的配置參數 "case_sensitive" 2.sys_backup.sh init時提示can not connect the primary node 3.設置邏輯備份運行腳本時提示錯誤are not allowed to use this program (crontab) 4.修改表字段類…

Docker Buildx最佳實踐:多架構鏡像構建指南

文章目錄為什么需要 Docker Buildx安裝與啟用 Docker Buildx創建多架構構建器實例構建多架構鏡像優化構建性能調試多架構構建實戰案例&#xff1a;構建 Go 應用多架構鏡像總結Docker Buildx 是 Docker 官方推出的擴展工具&#xff0c;用于支持多平臺鏡像構建&#xff0c;簡化跨…

你用的是什么鍵盤?

在電競行業飛速發展的當下&#xff0c;游戲鍵盤作為玩家操作的核心載體&#xff0c;其性能表現直接影響著游戲體驗與競技結果。而賽卓電子推出的磁軸鍵盤專用芯片 SC4823&#xff0c;憑借一系列突破性的技術特性&#xff0c;正成為游戲鍵盤領域的性能革新者。?對于游戲玩家而言…

Activiti 中各種 startProcessInstance 接口之間的區別

前言在用 RuntimeService 接口啟動流程實例時&#xff0c;總是分不清楚不同 startProcessInstanceXXX 接口之間的區別&#xff0c;這篇文章基于 Activiti 7.0.0.GA 版本&#xff0c;對這一類接口進行一個梳理和歸類。詳解接口列表RuntimeService 接口中以 startProcessInstance…

新手BUG:函數中 static 變量的賦值語句只會執行一次

在 C 函數中使用 static 變量時&#xff0c;很多新手會陷入一個認知誤區&#xff1a;認為變量的初始化語句會在每次函數調用時執行。比如在bool funcA() { // Q&#xff1a;多次調用funcA&#xff0c;funcB會被執行幾次&#xff1f;// A&#xff1a;1次static bool value func…