大数据可视化实验三——数据可视化工具使用

目录

一、实验目的... 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.mzph.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…

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; 数组的声明指定了元素的…

【数据结构】数组循环队列的实现

队列&#xff08;Queue&#xff09;是一种特殊的线性数据结构&#xff0c;它遵循FIFO&#xff08;First In First Out&#xff0c;先入先出&#xff09;的原则。队列只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff08;rear&#…

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是怎么实现在第三方应用认…

计算机毕业设计Python+Spark知识图谱课程推荐系统 课程预测系统 课程大数据 课程数据分析 课程大屏 mooc慕课推荐系统 大数据毕业设计

1 绪 论 1.1 课题研究背景 在线教育学习平台是学生用来进行校内或校外拓展课程学习的平台&#xff0c;平台需要具备在线视频观看&#xff0c;作业提交&#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…

《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-07-软件架构维护

文章目录 1. 软件架构知识管理1.1 概念1.2 架构知识的获取1.3 作用1.4 架构知识管理的现状 2 软件架构修改管理3 软件架构版本管理4. 示例4.1 背景4.2 数据获取4.3 数据计算4.4 结果分析4.4.1 圈复杂度 (CCN)4.4.2 扇入扇出度 (FFC)4.4.3 模块间耦合度 (CBO)4.4.4 模块的响应 (…

mysql group by 细节介绍

mysql中group by的用法是配合聚合函数&#xff0c;利用分组信息进行统计&#xff0c;语句如“select name,sum(id) from test group by name,number”。 先来看下表1&#xff0c;表名为test&#xff1a; 执行如下SQL语句&#xff1a; SELECT name FROM test GROUP BY name 你…

OFDM802.11a的FPGA实现(十四)data域的设计优化,挤掉axi协议传输中的气泡

原文链接&#xff08;相关文章合集&#xff09;&#xff1a;OFDM 802.11a的xilinx FPGA实现 目录 1.前言 2.data域的时序要求 3.Debug 1.前言 前面12篇文章详细讲述了&#xff0c;OFDM 802.11a发射部分data域的FPGA实现和验证&#xff0c;今天对data域的设计做一个总结。在…

springboot306基于Java的民宿管理系统(源码+包运行+配套LW+技术指导)

项目描述 临近学期结束&#xff0c;开始毕业设计制作&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉的困难吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于Java的民宿管理…

CoSeg: Cognitively Inspired Unsupervised Generic Event Segmentation

名词解释 1.特征重建 特征重建是一种机器学习中常用的技术&#xff0c;通常用于自监督学习或无监督学习任务。在特征重建中&#xff0c;模型被要求将输入数据经过编码器&#xff08;encoder&#xff09;转换成某种表示&#xff0c;然后再经过解码器&#xff08;decoder&#x…

升级Microsoft 365后,SAP GUI中无法打开Excel的解决方案

最近&#xff0c;我们遇到了一个棘手的问题&#xff0c;一位客户在升级到Microsoft 365后&#xff0c;无法在SAP GUI中打开Excel。这个问题不仅影响了工作效率&#xff0c;也给用户的日常操作带来了不便。在本文中&#xff0c;我们将探讨问题的成因&#xff0c;并提供一种解决方…

泛微E9开发 添加多个多选框,实现单选框的效果

利用多个多选框实现单选框的效果 1、功能背景2、展示效果3、实现效果 1、功能背景 如下图所示&#xff0c;在表单中新增四个“选择框-复选框”类型的字段&#xff0c;并且设置其中的选项&#xff0c;每个多选框都只有一个选项&#xff0c;通过代码块实现单选框的效果 1.显示模…

邓闲小——生存、生活、生命|真北写作

人生有三个层次∶生存、生活、生命。 生存就是做必须做的事。生存的模式是邓&#xff0c;是交易&#xff0c;是买卖。别人需要的东西&#xff0c;你生产出来&#xff0c;卖给他。哪怕这个东西没啥用&#xff0c;也可以卖&#xff0c;情绪也可以卖。你需要的东西&#xff0c;你花…