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

2021-01-07 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
  • 2020徵文-TV10分鐘鴻蒙應用實戰開發:鴻蒙手繪板 (含原始碼)
    ,一般用於渲染各種界面元素,這裡需要 import ohos.agp.render.Canvas;包 Path : 路徑的意思,也屬於渲染組件,用於描述繪製的路徑。需要import ohos.agp.render.Path; Paint : 表示繪製,屬於渲染組件,用於一些繪製操作,需要import ohos.agp.render.Paint; Point : 表示一個點,通常由二維坐標(x,y)組成,需要import ohos.agp.utils.Point
  • Python使用tkinter製作一個簡易的繪圖程序一(Python GUI編程)
    【課題內容】使用tkinter製作一個帶有菜單的繪圖工具,菜單中選擇繪製圖形的內容(程序中我們建立了繪製圓、橢圓、矩形、直線等圖形的方法),還可以使用菜單命令清除繪製的圖形界面,菜單提供幫助信息(主要顯示如何繪製圖形的方法),菜單彈出框顯示應用程式版本信息。
  • HTML5 canvas繪圖基本使用方法
    quadrticCurveTo():與上面類似,只不過它使用二次貝塞爾曲線。createPattern():第一參數指定了用做圖案的圖片,必須是文檔中的一個img、canvas或video元素。第二參數通常是repeat,表示採用重複的圖片填充。還可以使用repeat-x、repeat-y、no-repeat。createRadialGradient():用來創建放射狀、圓形漸變對象。
  • 推薦13款JavaScript圖形和圖表繪製工具
    如今,在網際網路上發布在線免費的Javascript圖形和圖表繪製工具越來越多。作者此前在一家網站從事複雜的圖形學方面的工作,使用highchart,在那期間,沒有大量的插件工具可供選擇,不像現在,我們可以輕易地找到非常有用的圖表庫。
  • 柱狀圖繪製,在R中兩行代碼就可以實現
    R可以說是繪製圖形的利器了,簡單幾行代碼,就可以繪製出各種精美的圖形。當然,對於從事科研的小夥伴來說,把辛苦做出來的實驗數據繪製成各種高大上的統計圖形才是至關重要的。今天,小編給大家展示一下用R繪製柱狀圖是多麼簡單!
  • python學習筆記:快速繪圖和3D柱狀圖
    快速繪圖#首先載入 matplotlib 的繪圖模塊 pyplot ,並且命名為 plt。#此外還可以用 dpi 參數指定 Figurc 對象的解析度,即每英寸所表示的像素數,這裡使用默認值80。plt.figure(figsize=(8,4))# plot()的前兩個參數是分別表示X、Y 軸數據的對象,這裡使用的是 NumPy 數組。
  • Canvas學習:繪製文本
    不過在Canvas中到目前為止只提供了一些必備的基本功能,例如文本的描邊與填充,向Canvas之中放置文本,以及用像素為單位來計算任意字符串的寬度等。接下來的內容,我們就來了解在Canvas中怎麼繪製文本以及一些基本的操作。
  • 柱狀圖、堆疊柱狀圖、瀑布圖有什麼區別?怎樣用Python繪製?(附代碼)
    其主要用於數據統計與分析,早期主要用於數學統計學科中,用柱狀圖表示數位相機的曝光值,到現代使用已經比較廣泛,比如現代的電子產品和一些軟體的分析測試,如電腦、數位相機的顯示器和Photoshop上都能看到相應的柱狀圖。基礎柱狀圖經常用來對比數值的大小,使用範圍非常廣泛,例如科比在不同賽季的得分、不同遊戲App下載量、不同時期手機端綜合搜索用戶規模等,圖2-33顯示不同種類水果的銷量。
  • Python-matplotlib 學術柱狀圖繪製
    柱狀圖或條形圖在學術論文中使用的頻率還是很大的,圖中需要以不同顏色對不同數據進行區分,但當涉及黑白列印時,色彩顏色的區別度較小,導致難以理解,因此需要繪製
  • 氣象繪圖加強版(三)——柱狀圖
    ,bar、barh繪圖函數的常見參數與應用實例。一、簡談柱狀圖柱狀圖和折線圖在展示時間序列時原理類似,但是視覺效果是不一樣的。折線圖首先給予讀者趨勢的變化,然後是數量的變化;柱狀圖首先給讀者數量的變化,然後才是趨勢的變化。柱狀圖在商務圖表上用的比較多,比如經濟、社調報告。氣象由於研究方法的特性,對摺線圖和等值線圖運用偏多,於是柱狀圖最常用的就是降雨量的可視化,另外一些值需要比較大小或變化時也可以使用。
  • 微信小程序canvas繪製海報並保存本地相冊
    在做微信小程序電商項目中,想要分享一款商品,使用最多並且最簡便的方法就是使用小程序自帶的分享api進行分享,但是分享出去的頁面比較難看;另一種方法就是自己使用小程序canvas繪製分享的海報,這個海報可以保存在相冊裡,而且可以按照自己的需求效果進行頁面繪製。
  • 使用HTML5和Javascript設計繪圖程序
    【IT168 專稿】前言  在本文中,將會介紹如何使用HTML5和Javascript去設計一個簡單的繪圖程序。HTML5的一個新的特性是canvas畫布功能,通過canvas畫布的強大功能可以實現繪畫不少圖形和其他絢麗的功能。
  • 「強烈建議收藏」小程序canvas繪製帶二維碼海報全流程(枚舉踩坑,詳解解決方案)
    js中這麼寫onReady(){ /* 使用 wx.createContext 獲取繪圖上下文 context , firstCanvas 與 canvas 屬性中的canvas-id一一對應 */ const context = wx.createCanvasContext('firstCanvas') /* 設置字體大小
  • html中繪製圖形標籤的詳細介紹
    本篇將介紹的是html中<canvas>標籤的用法,感興趣的朋友可以一起研究一下!在html5中,新增了很多實用的標籤,今天為大家介紹的是html5新增標籤<canvas>,<canvas>標籤只是一個容器,對內容並沒有樣式的更改。那它在html中有什麼用,接下來我們就一起來看看吧!
  • Python使用tkinter製作一個簡易的繪圖程序四(Python GUI編程)
    前幾篇,我們使用Python中tkinter庫製作了一個簡易的畫圖板程序,實現了圓、橢圓、矩形、直線等圖形的繪製功能。但是,繪圖效果沒有想像中好看,我們只是拖動滑鼠實現了繪圖功能,對於滑鼠當前位置及我們要繪製的圖形的樣子是什麼?
  • canvas文本繪製自動換行、字間距、豎排等實現
    而maxWidth表示的含義可就不一樣了,表示最大需要換行的寬度,此參數可預設,默認會使用canvas畫布的width寬度作為maxWidth;lineHeight表示行高,同樣可預設,默認會使用<canvas>元素在DOM中繼承的line-height作為行高。
  • 2020徵文-手機圖解鴻蒙Feature Ability和AbilitySlice的關係
    2020徵文-手機圖解鴻蒙Feature Ability和AbilitySlice的關係 當我們在DevEco Studio中創建一個鴻蒙項目時,如果選擇的設備是手機,並且選擇的模板是Empty Feature Ability(Java),如下圖所示,那麼自動生成的Hello World
  • 自定義Widget的實現和使用方法
    作為基礎UI組件來使用,這時我們就需要根據需求自定義Widget了。Flutter中的自定義Widget和安卓、iOS原生平臺類似,可以使用現有Widget進行組合,也可以自己根據需求來繪製,下面分別對兩種自定義Widget的實現和使用方法做詳細介紹。現有Widget組合自定義Widget現有Widget組合即是根據前面所介紹的基礎Widget根據需求來組合成一個通用的Widget,這樣在使用過程中避免設置過多的屬性,且增強其復用性。
  • 一文講透,帶你學會用Python繪製帶誤差棒的柱狀圖和條形圖
    Python數據可視化,作為數據常用的必備技能,是目前大數據和數據分析的一個熱門,而matplotlib庫作為Python中最為常用和經典的二維繪圖庫,受到了很多人的青睞,最近已經和大家共同探討了多種類型的圖表的繪製,其中關於誤差棒圖,咱們已經在上次一起討論過了,今天咱們繼續深入研究誤差棒圖相關的知識