大數據可視化實驗三——數據可視化工具使用

目錄

一、實驗目的... 1

二、實驗環境... 1

三、實驗內容... 1

1. 下載并安裝Tableau軟件.. 1

2. 使用HTML5繪制Canvas圖形.. 2

3. 使用HTML5編寫SVG 圖形... 5

4. 使用R 語言編寫可視化實例.. 7

四、總結與心得體會... 7

五、思考問題... 8

一、實驗目的

1)了解數據可視化工具,下載并安裝可視化工具

2)掌握數據可視化的主流編程語言,能使用編程語言開發簡單的可視化作品

二、實驗環境

硬件:微型圖像處理系統,

包括:主機, PC機;

操作系統:Windows 11????????

應用軟件:Jupyter Notebook, pycharm, Tableau

數字圖像處理軟件:Excel/Python

三、實驗內容

1. 下載并安裝Tableau軟件

Tableau軟件已下載成功,軟件界面如下所示:

2. 使用HTML5繪制Canvas圖形

在pycharm中編輯如下代碼進行Canvas圖形的繪制,編寫了以下代碼:

<!DOCTYPE html>
<html lang="en">
<head>
??? <meta charset="UTF-8">
??? <title>我的html繪制Canvas</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="200" style="border: solid 1px red;">
??? 你的瀏覽器不支持Canvas,建議使用最新版Chrome
</canvas>
<script>
??? var c = document.getElementById("myCanvas");
??? var ctx = c.getContext("2d");
??? // 繪制一個圓
??? ctx
.beginPath();
??? ctx.arc(100, 75, 40, 0, 2*Math.PI);
??? ctx.stroke();
??? // 繪制一個填充矩形,改變顏色為淺紅色
??? ctx
.fillStyle = 'lightcoral'; // 淺紅色
??? ctx
.fillRect(30, 30, 60, 60);? // 修改位置和大小
??? //
繪制另一個填充矩形,顏色保持為淺紅色
??? ctx
.fillRect(140, 30, 60, 60); // 修改位置和大小
??? //
繪制兩個矩形邊框,位置和大小根據填充矩形調整
??? ctx
.strokeRect(30, 30, 60, 60);
??? ctx.strokeRect(140, 30, 60, 60);
??? // 繪制一條直線
??? ctx
.moveTo(30, 30);
??? ctx.lineTo(170, 170);
??? ctx.stroke();
??? var text = "我的canvas";
??? // 設置文本的字體樣式和大小
??? ctx
.font = "16px Arial";
??? // 設置文本顏色
??? ctx
.fillStyle = 'darkblue'; // 文本顏色改為深藍色
??? //
設置文本對齊方式
??? ctx
.textAlign = "center";
??? // 設置文本的基線對齊方式
??? ctx
.textBaseline = "middle";
??? // 計算文本的寬度
???
var textWidth = ctx.measureText(text).width;
??? // 設置文本繪制的起始點位置
???
var x = 95 ;
??? var y = 180;
??? // 使用fillText()方法填充(實心)文本
??? ctx
.fillText(text, x, y);
</script>
</body>
</html>

整體上,這段代碼在canvas上繪制了一個圓、兩條直線、兩個填充矩形和兩個矩形邊框,并在畫布中心繪制了文本。通過調整參數,你可以改變這些圖形的位置、大小和顏色。

  1. <!DOCTYPE html>:聲明文檔類型,告訴瀏覽器這是一個HTML5文檔。
  2. <html lang="en">:根元素,定義了整個文檔的語言為英語。
  3. <head>:包含了文檔的元數據,如字符集聲明和標題。
  4. <meta charset="UTF-8">:指定頁面的字符編碼為UTF-8,這是一種廣泛使用的字符編碼。
  5. <title>我的html繪制Canvas</title>:定義了網頁的標題,顯示在瀏覽器的標簽頁上。
  6. <body>:包含了網頁的所有內容,用戶將在這里看到網頁的主體。
  7. <canvas id="myCanvas" width="200" height="200" style="border: solid 1px red;">:創建了一個200x200像素的畫布,并為其添加了紅色的邊框。id屬性為"myCanvas",用于在JavaScript中引用這個元素。如果瀏覽器不支持<canvas>元素,將顯示canvas后面的文本。
  8. <canvas>后面的文本是備選內容,用于那些不支持canvas的瀏覽器。推薦用戶使用最新版的Chrome瀏覽器。
  9. <script>:內嵌的JavaScript代碼塊,用于操作canvas元素。
  10. var c = document.getElementById("myCanvas");:通過ID獲取canvas元素。
  11. var ctx = c.getContext("2d");:獲取canvas的2D繪圖上下文,這是繪制圖形所需的。
  12. 使用ctx.beginPath()開始一個新的路徑。
  13. 使用ctx.arc(100, 75, 40, 0, 2*Math.PI)繪制一個圓,圓心位于(100, 75),半徑為40,從0度到360度(即一個完整的圓)。
  14. 使用ctx.stroke()繪制當前路徑的輪廓。
  15. 使用兩個ctx.strokeRect()方法繪制兩個矩形的邊框,分別定義了矩形的位置和大小。
  16. 使用ctx.fillStyle = 'lightcoral';設置填充顏色為淺紅色。
  17. 使用ctx.fillRect(30, 30, 60, 60);繪制一個填充矩形,定義了矩形的位置和大小。
  18. 另一個ctx.fillRect()方法繪制第二個填充矩形。
  19. ctx.moveTo(30, 30);和ctx.lineTo(170, 170);定義了一條從左上角到右下角的直線的起點和終點。
  20. 使用ctx.stroke()繪制直線。
  21. var text = "我的canvas圖";定義了要繪制的文本內容。
  22. ctx.font = "16px Arial";設置文本的字體樣式和大小。
  23. ctx.fillStyle = 'darkblue';設置文本的填充顏色為深藍色。
  24. ctx.textAlign = "center";和ctx.textBaseline = "middle";設置文本的水平和垂直對齊方式。
  25. 使用ctx.measureText(text).width計算文本的寬度。
  26. 計算文本繪制的起始點位置,確保文本位于畫布的中心。
  27. 使用ctx.fillText(text, x, y);在指定位置填充(繪制實心)文本。

運行結果如下:

3. 使用HTML5編寫SVG 圖形

編寫SVG繪制html5代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
??? <meta charset="UTF-8">
??? <title>Advanced SVG Example</title>
??? <style>
??????? /* SVG中的文本添加樣式 */
???????
text {
??????????? font-family: Arial, sans-serif;
??????????? font-size: 12px;
??????? }
??? </style>
</head>
<body>
??? <!-- SVG 容器 -->
???
<svg width="400" height="400">
??????? <!-- 定義一個線性漸變 -->
???????
<defs>
??????????? <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
??????????????? <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
??????????????? <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
??????????? </linearGradient>
??????? </defs>
??????? <!-- 使用漸變填充繪制圓形 -->
???????
<circle cx="100" cy="100" r="50" fill="url(#grad1)" />

??????? <!-- 繪制帶箭頭的直線 -->
???????
<line x1="200" y1="100" x2="250" y2="150" stroke="black" stroke-width="2">
??????????? <polygon points="250,150 255,155 245,155" fill="black" />
??????? </line>

??????? <!-- 繪制矩形 -->
???????
<rect x="150" y="30" width="100" height="50" fill="blue" stroke="black" stroke-width="2" />

??????? <!-- 添加文字 -->
???????
<text x="20" y="20">我的svg圖形</text>
??? </svg>
</body>
</html>

運行結果如下:

4. 使用R 語言編寫可視化實例

編寫R語言代碼繪制散點圖如下:

# 載入ggplot2包

library(ggplot2)

# 創建一個數據框,包含兩組變量

data <- data.frame(

? x = 1:10,

? y = (1:10)^2

)

# 使用ggplot2創建散點圖

ggplot(data, aes(x = x, y = y)) +? # 指定數據和映射關系

? geom_point() +? # 添加散點圖層

? labs(title = "散點圖示例", x = "X軸變量", y = "Y軸變量")? # 添加標題和坐標軸標簽

# 顯示圖形

運行結果如下:

四、總結與心得體會

1.在pycharm中可以直接新建html5文件編輯html代碼,好處是有錯誤提醒,也可以在文本文件中直接編寫,然后將后綴改為html運行。

五、思考問題

大數據可視化還有哪些工具?都能實現相同的功能嗎?

可視化的工具還有origin、C/C++語言和matlab等,基本的可視化功能都可以實現,但是上手難易程度不同,對不同的工作完成的方便程度也不同,針對不同問題可以采用不同的工具。

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

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

相關文章

C++-Linux工程管理

1 Makefile和CMake實踐 1.1 Makefile 參考 簡介&#xff1a; Makefile是一種用于自動化構建和管理程序的工具。它通常用于編譯源代碼、鏈接對象文件以生成可執行文件或庫文件。Makefile以文本文件的形式存在&#xff0c;其中包含了一系列規則和指令&#xff0c;用于描述程序的…

python數據分析——seaborn繪圖1

參考資料&#xff1a;活用pandas庫 matplotlib庫是python的和興繪圖工具&#xff0c;而seaborn基于matplotlib創建&#xff0c;它為繪制統計圖提供了更高級的接口&#xff0c;使得只用少量代碼就能生成更美觀、更復雜的可視化效果。 seaborn庫和pandas以及其他pydata庫&#xf…

Go 阻塞

阻塞 在Go語言中&#xff0c;阻塞通常指的是一個goroutine&#xff08;輕量級線程&#xff09;在等待另一個goroutine完成操作&#xff08;如I/O操作、channel通信等&#xff09;時&#xff0c;暫時停止執行的現象。Go語言提供了多種同步和通信機制&#xff0c;可以用于實現阻…

數據賦能(86)——數據要素:管理核心框架

數據管理的核心框架是一個綜合性的體系&#xff0c;旨在確保數據的有效利用、安全性以及合規性。這個框架主要包含了以下幾個關鍵組成部分&#xff1a; 數據治理策略與目標&#xff1a;明確數據管理的整體戰略和目標&#xff0c;包括數據價值的釋放、數據資產地位的確定、多元…

OpenHarmony 實戰開發——移植通信子系統

通信子系統目前涉及Wi-Fi和藍牙適配&#xff0c;廠商應當根據芯片自身情況進行適配。 移植指導 Wi-Fi編譯文件內容如下&#xff1a; 路徑&#xff1a;“foundation/communication/wifi_lite/BUILD.gn” group("wifi") {deps [ "$ohos_board_adapter_dir/ha…

C++基礎與深度解析 | 數組 | vector | string

文章目錄 一、數組1.一維數組2.多維數組 二、vector三、string 一、數組 1.一維數組 在C中&#xff0c;數組用于存儲具有相同類型和特定大小的元素集合。數組在內存中是連續存儲的&#xff0c;并且支持通過索引快速訪問元素。 數組的聲明&#xff1a; 數組的聲明指定了元素的…

前端人員如何理解進程和線程

進程和線程的概念&#xff1a; 進程和線程本質都是cpu工作過程的時間片。 進程可以理解為cpu在運行指令即加載保存上下文所要用的時間。也可以理解為一個應用程序運行的實例。 線程是進程中更小的單位&#xff0c;描述一段指令所需要的時間。 進程是資源分配的最小單位&#xf…

【數據結構】數組循環隊列的實現

隊列&#xff08;Queue&#xff09;是一種特殊的線性數據結構&#xff0c;它遵循FIFO&#xff08;First In First Out&#xff0c;先入先出&#xff09;的原則。隊列只允許在表的前端&#xff08;front&#xff09;進行刪除操作&#xff0c;而在表的后端&#xff08;rear&#…

MySQL中導出CSV格式數據 | Java處理CSV數據

1. 導出不帶表頭的CSV數據 SELECT dataid, recordfilename INTO OUTFILE /tmp/uk_callcenter_event3.csv FIELDS TERMINATED BY , LINES TERMINATED BY \n FROM table_name WHERE createtime > 2024-03-27 22:00:00 AND createtime < 2024-04-29 23:59:59 AND timehou…

使用selenium控制已經打開的瀏覽器,應該如何實現。

要使用Selenium控制一個已經打開的瀏覽器實例&#xff0c;你可以通過以下步驟實現&#xff0c;這里以Google Chrome瀏覽器為例&#xff1a; 步驟 1: 啟動Chrome瀏覽器并啟用遠程調試 首先&#xff0c;你需要以遠程調試模式啟動Chrome瀏覽器。這可以通過在命令行中使用特定參數來…

python下載及安裝

1、python下載地址&#xff1a; Python Releases for Windows | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/windows/ 2、python安裝 &#xff08;1&#xff09; 直接點擊下載后的可執行文件.exe &#xff08;2&…

Spring Boot項目怎么集成Gitee登錄

一、背景 現在的越來越多的項目&#xff0c;需要集成第三方系統進行登錄。今天我們以Spring Boot項目集成Gitee為例&#xff0c;演示一下怎么使用Oauth2協議&#xff0c;集成第三方系統登錄。 不了解oauth2的&#xff0c;可以看我之前的文章。Ouath2是怎么實現在第三方應用認…

MySQL創建儲存過程函數

DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 學號,createDate datetime DEFAULT NULL COMMENT 創建時間,modifyDate datetime DEFAULT NULL COMMENT 修改時間,userName varchar(30) NOT NULL COMMENT 學生名稱,pwd varchar(36) DEFAULT NULL COMME…

代碼隨想錄算法訓練營第五十二天

今日效率低下&#xff0c;努力把題做完。做快一點&#xff01;&#xff01;&#xff01; 300.最長遞增子序列 class Solution { public:int lengthOfLIS(vector<int>& nums) {if (nums.size() 1) return 1;vector<int>dp(nums.size(),1);int result 0;for(i…

計算機畢業設計Python+Spark知識圖譜課程推薦系統 課程預測系統 課程大數據 課程數據分析 課程大屏 mooc慕課推薦系統 大數據畢業設計

1 緒 論 1.1 課題研究背景 在線教育學習平臺是學生用來進行校內或校外拓展課程學習的平臺&#xff0c;平臺需要具備在線視頻觀看&#xff0c;作業提交&#xff0c;形成性考核等功能。在學生學習的過程中&#xff0c;學校的管理者或負責教師需要了解學生的學習情況和學習狀態&…

Spring STOMP-發送消息

如果你想要從應用程序的任何地方向連接的客戶端發送消息&#xff0c;要怎么做&#xff1f;任何應用程序組件都可以向brokerChannel發送消息。要這樣做&#xff0c;最簡單方法是注入一個SimpMessagingTemplate并使用它來發送消息。通常&#xff0c;你會按類型注入它&#xff0c;…

WWW服務器搭建(2)——Apache服務器配置與管理

一、Apache簡介 1.1 關于Apache Apache HTTP Server&#xff08;簡稱Apache&#xff09;是Apache軟件基金會的一個開放源碼的Web服務器&#xff0c;可以在大多數計算機操作系統中運行&#xff0c;由于其跨平臺和安全性被廣泛使用&#xff0c;是最流行的Web服務器端軟件之一。…

01-02-5

1、單鏈表中按位置查找 a.原理 通過傳遞的位置&#xff0c;返回該位置對應的地址&#xff0c;放到主函數定義的指針變量中。 我們認為位置從&#xff1a;有數據的節點開始計數 即如下結構&#xff1a; 查找位置&#xff0c;就是返回該位置對應的空間地址。 b.代碼說明 Ⅰ…

H5嵌入原生----兼容安卓與ios

主要分UI展示&#xff0c;鍵盤&#xff0c;輸入框等等。解決bug最苦惱的問題不是沒有解決方案&#xff0c;而是你沒有找到真正的原因。再就是現象難以重現&#xff0c;每次都要發布代碼&#xff0c;然后到手機app中去測試&#xff0c;模擬。這些地方會耗費大量的精力。 一、UI…

【軟設】常見易錯題匯總

目錄 計算機系統基礎 程序語言基礎 數據結構 算法設計與分析 計算機網絡與信息安全 軟件工程基礎 開發方法&#xff08;結構化與面向對象&#xff09; 數據庫 操作系統 知識產權相關的法律法規 &#x1f92f;&#x1f92f;&#x1f92f;&#x1f92f;&#x1f92f;&#x1f9…