【圖解鴻蒙】使用繪圖組件Canvas繪製柱狀圖

2021-01-15 51CTO

想了解更多內容,請訪問:

51CTO和華為官方戰略合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

一、運行效果

在頁面中分別使用紅色、黃色和藍色顯示三組柱狀圖,如下圖所示:


二、實現思路

通過將組件chart的屬性type設置為"bar"來繪製一張柱狀圖。在組件chart中,通過動態綁定的方式指定屬性options和datasets的值,以對圖形的參數進行設置。

三、代碼詳解

打開文件index.hml。

將組件text中顯示的頁面標題修改為:柱狀圖。

在頁面標題的下方添加一個組件chart。在組件chart中,通過動態綁定的方式將屬性options和datasets的值分別設置為"{{options}}"和"{{datasets}}"。將屬性type的值設置為"{{bar}}",以顯示一張柱狀圖。

代碼如下所示:

<div class="container">     <text class="title">         柱狀圖     </text>     <chart class="chart" type="bar" options="{{options}}" datasets="{{datasets}}">     </chart> </d 

打開文件index.css。

分別定義三個類選擇器,以定義index.hml中組件div、text和chart的樣式。

代碼如下所示:

container {     width: 454px;     height: 454px;     flex-direction: column;     justify-content: flex-start;     align-items: center; } .title {     width: 240px;     height: 90px;     margin-top: 40px;     font-size: 38px;     text-align: center; } .chart {     width: 400px;     height: 200px; } 

打開文件index.js。

在data中將佔位符options的值初始化為一個字典,該字典中包含兩個元素,分別用於設置x軸和y軸的參數。第一個元素的key是xAxis,對應的value是一個字典,該字典中只包含一個元素,對應的key和value分別是axisTick和10,用於設置x軸上的刻度數量。在options對應的字典中,第二個元素的key是yAxis,對應的value是一個由兩個元素組成的字典,分別用於設置y軸的最大值和刻度數量,其中,兩個元素的key分別是max和axisTick,對應的value分別是100和1。

在data中將佔位符datasets的值初始化為一個字典的數組,該數組中包含三個字典。第一個字典中只包含一個元素,元素的key是data,對應的value是一個整數數組。第二個字典和第三個字典中都包含兩個元素,第一個元素指定柱狀圖對應的整數數組,第二個元素指定柱狀圖填充的顏色。

代碼如下所示:

export default {     data: {         options: {             xAxis: {                 axisTick: 10              },             yAxis: {                 max: 100,                  axisTock: 1,              }         },         datasets: [             {                 data: [33, 96, 53, 25, 99, 39, 59, 16, 22, 99],             },             {                 data:[45, 10, 80, 18, 21, 35, 86, 70, 84, 36],                 fillColor: "#ffff00"             },             {                 data: [38, 80, 70, 69, 74, 47, 26, 67, 32, 28],                 fillColor: "#4169e1"             },         ]     } } 

保存所有代碼後打開模擬器,運行效果如下圖所示:


項目原始碼,請見附件。

歡迎訂閱我的專欄【圖解鴻蒙】:

https://harmonyos.51cto.com/column/27

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請註明出處,否則將追究法律責任

想了解更多內容,請訪問:

51CTO和華為官方戰略合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

【編輯推薦】

點讚 0

相關焦點

  • matplotlib如何實現圖形繪製在tkinter的Canvas中?
    matplotlib如何實現圖形繪製在tkinter的Canvas中?今天番茄加速就來分享一下。下面就是最重要的tkinter和matplotlib集成部分,matplotlib提供FigureCanvasTkAgg對象,只需三行代碼,實現圖形繪製在tkinter的Canvas中:canvas_l = FigureCanvasTkAgg(figure_l, frame_l)# 用draw代替canvas_l.draw()canvas_l.get_tk_widget
  • python學習筆記:快速繪圖和3D柱狀圖
    快速繪圖#首先載入 matplotlib 的繪圖模塊 pyplot ,並且命名為 plt。#此外還可以用 dpi 參數指定 Figurc 對象的解析度,即每英寸所表示的像素數,這裡使用默認值80。plt.figure(figsize=(8,4))# plot()的前兩個參數是分別表示X、Y 軸數據的對象,這裡使用的是 NumPy 數組。
  • 使用HTML5和Javascript設計繪圖程序
    【IT168 專稿】前言  在本文中,將會介紹如何使用HTML5和Javascript去設計一個簡單的繪圖程序。HTML5的一個新的特性是canvas畫布功能,通過canvas畫布的強大功能可以實現繪畫不少圖形和其他絢麗的功能。
  • 柱狀圖繪製,在R中兩行代碼就可以實現
    R可以說是繪製圖形的利器了,簡單幾行代碼,就可以繪製出各種精美的圖形。當然,對於從事科研的小夥伴來說,把辛苦做出來的實驗數據繪製成各種高大上的統計圖形才是至關重要的。今天,小編給大家展示一下用R繪製柱狀圖是多麼簡單!
  • 實驗數據完成了,如何繪製為柱狀圖 | 以qPCR為例講解
    實驗數據完成了,如何繪製為柱狀圖?本文以實時螢光定量PCR(qPCR)為例講解。qPCR是通過螢光信號對擴增進程實時檢測,由於其靈敏度高、特異性強,樣本的Ct值和與基因拷貝數有關,現已作為科研實驗中重要的驗證方法。
  • 用HTML5把Canvas緩衝區內容輸出到屏幕
    我會儘量簡要說明如何使用HTML5 canvas元素和JavaScript創建簡單的遊戲。本教程將省略一些代碼,但絕非故意。您可以隨時查看我的遊戲演示。  之前,我們使用使用HTML編寫網頁遊戲,現在卻在使用HTML5。那麼兩者有區別嗎?元素用來創建客戶端遊戲時非常方便。針對客戶端遊戲編程,Canvas和JavaScript使用起來非常簡單。
  • Canvas框架-FabricJS簡介
    canvas元素,fabric也支持創建canvas元素,同樣也能對其進行相應操作與原生的異同之前有一個需求是點滑鼠左鍵並進行拖動,要實現實時在canvas上進行畫圖於是分別用元生canvas和fabric製作了該功能,接下來我們對比下兩者的異同
  • html5 canvas畫布繪製矩形和圓形
    html5為我們提供了非常有特色的標籤,canvas標籤為我們可以實現在網頁中畫畫提供了便利,接下來我們列舉他的常用操作。新建一個html5的文檔,建立一個canvas畫布,設置長寬,這裡需要特別注意,canvas標籤可以在標籤內設置width,height,也能通過css來設置,但是通過css來設置的標籤,當繪製圖形的時候會變形,所以我們建議直接在標籤內設置。
  • Origin繪圖:採用高斯方程對碳量子點TEM粒徑分布柱狀圖的擬合
    今天以譚編之前發表的論文中碳量子點的粒徑分布為例,演示採用高斯方程(Gauss)對柱狀圖進行擬合。圖1是碳量子點(簡稱碳點)的透射電子顯微鏡(TEM)照片。圖1 碳量子點的透射電子顯微鏡照片測試TEM時,可通過儀器對樣品的粒徑進行統計,得到粒徑的分布數據表,並繪製出柱狀圖如圖2所示。
  • 你想要的都在這,一文就會,詳細講解如何使用Python繪製柱狀圖
    首先,詳細探討如何用Python繪製柱狀圖柱狀圖是大家最為熟悉的一類圖表了,在咱們的平常工作中也是使用頻率非常高的一種統計圖形哦,下面咱們還是結合「慄子」的方式對其進行詳細的聊聊哦!第10行:plt.bar(x_axis, y_axis,, color='r', tick_label=['一','二','三','四','五','六'], alpha=0.6)這句話的意思是繪製柱狀圖的重點所在哦,繪製柱狀圖需要調用bar()函數,下面咱們就分析一下bar()函數的每個參數的詳細含義吧
  • 使用R語言繪製直方圖
    在本號前面的文章中介紹了R語言中繪製散點圖,折線圖,條形圖,餅圖和箱線圖的方法,有興趣的讀者關注本號後,可以往前看本號的所有文章,本文將介紹在R中繪製直方圖的方法。直方圖概述直方圖(Histogram)又稱柱狀圖,是由一系列高度不等的縱條紋或線段表示的數據分布情況。
  • 如何用matplotlib繪圖呢?
    使用過python做數據分析的小夥伴都知道,matplotlib是一款命令式、較底層、可定製性強、圖表資源豐富、簡單易用、出版質量級別的python 2D繪圖庫。matplotlib算是python繪圖的元老級庫,類似程式語言裡的C語言。
  • 如何使用 origin 繪製雙Y軸圖形?
    Origin繪圖教程(二):雙Y軸柱狀圖做法詳解繪製雙Y軸圖形的原因是有兩個以上的Y列數據,它們共有區間接近的X軸坐標,但Y軸坐標的數值範圍相差很大。如X軸為時間,兩個Y軸分別為數值和百分比。如果只用一個Y軸繪製多曲線圖形,則百分比將會被壓縮成一條水平線;如果分開兩個圖繪製,又不能夠集中表達出其中的變化意義。
  • JS+Canvas 帶你體驗「偶消奇不消」的智商挑戰
    層疊拼圖Plus 微信小遊戲採用js+canvas實現,沒有使用任何遊戲引擎,對於初學者來說,也比較容易入門。接下來,我將通過以下幾個點循序漸進的講解層疊拼圖Plus 微信小遊戲的實現。如何解決 Canvas 繪圖模糊?
  • 未明學院:Python可視化庫Matplotlib繪圖入門詳解
    Matplotlib是Python的繪圖庫,其中的pyplot包封裝了很多畫圖的函數。Matplotlib.pyplot 包含一系列類似 MATLAB 中繪圖函數的相關函數。每個 Matplotlib.pyplot 中的函數會對當前的圖像進行一些修改,例如:產生新的圖像,在圖像中產生新的繪圖區域,在繪圖區域中畫線,給繪圖加上標記,等等…… Matplotlib.pyplot 會自動記住當前的圖像和繪圖區域,因此這些函數會直接作用在當前的圖像上。
  • python學習筆記:同時畫多圖,折線圖,箱線圖,條形圖,柱狀圖等
    1.同時畫六張圖#從Matplotlib中導入了pyplot繪圖模塊from matplotlib.pyplot import *#設置相關的數值x=[1,2,3,4]y=[5,4,3,2]#創建一個圖紙(figure)figure()#使用subplot創建多個子圖,下面的subplot(2,3,1)表示創建一個包含2行3列圖表的圖紙,1表示第一張圖subplot
  • Python圖表繪製進階,圖例和標題你真的會添加嗎?一文講透
    在Python的圖表繪製中,圖例和標題是兩個重要的組件,尤其在繪圖區域出現多個圖形時,如果這些圖形不添加說明,那麼對於圖表受眾人員來說,就會很難識別出這些圖形中的主要內容,因此這就顯示出了圖例的重要性,因為圖例可以標記每個圖形所代表的內容;同樣,如果想讓受眾人員搞清楚繪圖區域中的內容所代表的意思
  • Python可視化很簡單,一文學會繪製柱狀圖、條形圖和直方圖
    matplotlib庫作為Python數據化可視化的最經典和最常用庫,掌握了它就相當於學會了Python的數據化可視化,通過前幾次呢,咱們已經討論了使用matplotlib庫中的圖表組成元素的幾個重要函數,相信大家已經學會並掌握了哦,今天呢,咱們再深入一點哦,一起來聊聊關於如何繪製柱狀圖
  • R語言中使用par函數在同一繪圖區中繪製多幅圖
    par函數概述在R繪圖時,有時我們想在一個繪圖區中同時繪製多幅圖。在R語言中可以有多個函數來實現此要求。這裡先介紹一下繪圖參數par函數的使用。R中的par()函數可以將繪圖區分割成規則的幾個部分。多圖環境用參數mfrow或參數mfcol來設定,如:par(mforw=c(3,2))則是在同一繪圖區中繪製3行2列共6個圖形,而且是先按行繪製,即繪製完第1行的2個圖形後,再繪製第2行的2個圖形,最後是第3行的2個圖形。同理,par(mfcol=c(3,2))也是繪製3行2列共6個圖形,與上面不同的是,先按列繪製。