数据可视化基本套路总结
首先从维基百科上搬出数据可视化
的概念:
数据可视化是关于数据之视觉表现形式的研究;其中,这种数据的视觉表现形式被定义为一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。
用人话简单来说,数据可视化就是用图形的方式来表征数据的规律。
首先要明确几点:
-
数据可视化从来只是表层的东西,数据分析才是核心。就像一个人,不一定长得漂亮人格就高尚,也不一定长得不好看人格就低下。而应该反过来,只只有数据分析内涵丰富、价值高,数据可视化才能内容丰富、有价值。
-
可是这是个看脸的世界,大部分人对于数据也都是外行的,只有把数据可视化做得漂亮才能吸引他们的注意;只有把数据可视化做得简单易懂,他们才能理解数据分析的内涵。
-
对于数据可视化,最重要的东西从来不是图形、工具、配色这些套路性的东西,而在于创意和灵感。可你又不是参加比赛,并不需要那么多的创意灵感。在日常工作中,还是以实用为主,所以掌握套路还是很必要的。
本文旨在总结数据可视化基本套路,理解了本文的内容,就算不能在数据可视化比赛中拿奖,应付日常工作应该也够了。熟悉了套路怎么看,再结合专业知识,就可以解释可视化结果了。
常用图形
散点图
散点图
散点图用来表征两个(如果多个就分面,如上图)数值型变量间的关系,每个点的位置(即x轴和y轴坐标)映射着两个变量的值。当然对于三个数值型变量,也有三维散点图,不过用得不多。
气泡图
气泡图
在散点图的基础上加一个维度,把各个点的面积大小映射一个新的变量,这样不仅点的位置还有大小表示数据特征。
折线图
折线图
把散点图各个散点用折线连接起来就成了折线图,当然不仅仅只是为了好看,当散点越多,折线就越平滑地趋近于曲线,能更加贴切地反映连续型变量的规律。
面积图
面积图
把折线图进一步往坐标轴投影就成了面积图,本质其实跟折线图没区别,只是看起来更加饱满一点。
柱状图
柱状图
柱状图是一种用得很广泛的图形,它表征分类型变量 vs 数值型变量的关系。如果分类型变量的每一个取值还能继续分类,那么简单的柱状图就变成了复杂的柱状图,每一个类别仅由一根柱变成多根柱,多根柱可以串列,也可以并列。
值得一提的是,柱状图一般需要排序:如果分类型变量是有序的,按照它本身的顺序排列即可;如果分类型变量无序,那么则根据数值型变量的大小进行排序,使柱状图的高度单调变化。(排序的宗旨是直观的表达出想展示的规律)
条形图
条形图
只不过把柱状图坐标旋转一下,竖着的变成横着的,这个可根据版面自由选择。上图示例就是串列的堆叠条形图。
南丁格尔玫瑰图
玫瑰图
本质还是柱状图,只不过把直角坐标系映射成极坐标系。看起来比柱状图更美观。
瀑布图
瀑布图
瀑布图是柱状图的一种延伸,它一般表示某个指标随时间的涨跌规律,每一个柱状也不都是从0开始的,而是从前一个柱状的终点位置开始,这样既反映了每一个时刻的涨跌情况,也反映了数值指标在每一个时刻的值。
饼图
饼图
饼图的本质仍是柱状图,只不过饼图一般用来表示各个类别的比例,而不是绝对的数值,用角度来映射大小。
值得一提的是,因为一个圆饼只有360度,如果类别太多了,这个饼会被切割得非常细,不利于阅读;这种情况下老老实实地用柱状图。
圆环图
圆环图
本质就是饼图,只不过把实心圆换成了空心的圆环;如果清一色的饼图太过单调,可以考虑换个环形图。
sunburst chart
sunburst chart
sunburst chart看起来跟饼图比较像,但比饼图更复杂得多。它从中心向外辐射,每辐射一层就细分一层,用来表示多个变量多层之间的比例关系。
马赛克图
马赛克图
马赛克图比较复杂,与柱状图相比,它的分类变量就多了几个,而且还能实现交叉映射,所以比柱状图更抽象,更细化。
马赛克图隐含着大量的数据信息。例如:(1)从船员到头等舱,存活率陡然提高;(2)大部分孩子都处在三等舱和二等舱中;(3)在头等舱中的大部分女性都存活了下来,而三等舱中仅有一半女性存活;(4)船员中女性很少,导致该组的Survived标签重叠(图底部的No和Yes)。继续观察,你将发现更多有趣的信息。关注矩形的相对宽度和高度,你还能发现那晚其他什么秘密吗?
扩展的马赛克图添加了颜色和阴影来表示拟合模型的残差值。在本例中,蓝色阴影表明,在假定生存率与船舱等级、性别和年龄层无关的条件下,该类别下的生存率通常超过预期值。红色阴影则含义相反。一定要运行该例子的代码,这样你可以真实感受下着色图形的效果。图形表明,在模型的独立条件下,头等舱女性存活数和男性船员死亡数超过模型预期值。如果存活数与船舱等级、性别和年龄层独立,三等舱男性的存活数比模型预期值低。尝试运行example(mosaic),可以了解更多马赛克图的细节。
直方图
直方图
直方图看起来跟柱状图很像,但其实本质并不一样 (这一点需要注意)。直方图用来表征一个数值型变量的分布,具体来说就是把这个连续型变量划分成多个区间,然后统计各个区间的频数。直方图横轴是数值型变量本身的值,纵轴是频数。
概率密度曲线图
概率密度曲线图
概率密度曲线图本质与直方图类似,不过纵轴不是频数而是频率。正如折线图和面积图一样,概率密度曲线图也可自由选择要不要面积投影。这个图太学术了,一般出现在数学教材中(比如正态分布……)。
雷达图
雷达图
很多游戏中的人物能力极向对比就是以雷达图表示的。柱状图一般是一个分类型变量不同类别间的比较,雷达图可以是多个数值不在同一个scale之下;更具体地说,柱状图一般是横向比较,雷达图既可以多个观测之间的纵向比较,也可以是一个观测在不同变量间的横向比较。
值得一提的是,雷达图如果用来横向比较,需先把各个数值变量作归一化处理。
箱线图
箱线图
箱线图亦称盒须图,也是挺学术的一个图。它用来表征各个数值型变量的分布状况,每一条横线代表分位数,盒内部的横线代表中位数,点代表异常值。
小提琴图
小提琴图
小提琴图本质与直方图一样,都是表征数值型变量的分布,每一个小提琴的宽度代表它在该高度处的频率范围。
热力图
热力图
热力图一般以颜色来映射密度或者其他数值变量,一般来说,颜色最深的地方表示数据最集中。(比较常用,对于热图的解释还需要看图例的含义)
日历图
日历图
日历图是热力图的变种,它把每一个矩形重新排列成日历的形状,这样可以方便地观察一段时间内每一天的数值特征。
地图
地图
地图用来可视化地理数据,这些数据一般由国家地理测绘部门提供,在一些网站上也能找到,常用的数据格式有shp、JSON、csv等。
地图的绘制原理是基于大量的散点,勾勒成曲线,再连接成多边形——其中每一块多代形代表一个地区,可以是国家、省、市、区县等。
地图的应用主两有种情况:一是如上图一样以颜色填充每一个多边形来映射一个指标,这种情况下地图跟柱状图本质相同,但是多了多边形之间的位置关系;另一种是在地图上叠加散点或者曲线,来表征各个点之间的地理位置。
地球图
地球图
地图是二维的,三维的就是地球图。这种图形一般是交互的,也就是说你可以用鼠标实现地球的旋转和缩放等操作。
值得一提的是,不要仅仅为了3D就使用地球图,要看数据本身的情况。如果你的数据范围本来就覆盖全球,用地球图很合适;但如果你的数据范围小,就一个国内,甚至一个省市内的,搞个地球图就太浮夸,而且整个球上只有一个非常小的区域有数据,是很不和谐的。
网络图
网络图
网络图的元素包含点和边,边分为无向边、单向边和双向边来表征点与点的连接关系,边的粗细可以映射这种关系的强弱。
arc diagram
arc diagram
arc diagram也是一种网络图,只不过它把所有的节点一字排开,以弧线来表示边。这样看起来艺术感更强,适合于节点较多的网络关系可视化。
和弦图
Chord Diagram
和弦图一般用来表示双向的网络关系(比如AB两个城市相互流入流出了多少人),数据结构一般为邻接矩阵。当节点很多的时候,各种弧线交叉得就非常密密麻麻,这种情况下,要么交互,要么考虑别的图形。
hierarchical edge bundling
hierarchical edge bundling
hierarchical edge bundling也表示节点间的网络关系,不过它把边扭曲成曲线,这样就适合节点比较多的可视化。
矩形树图
矩形树图
矩形树图本质就是决策树的可视化,只不过排成矩形。它也是把各个变量层层细分,这一点跟sunburst图类似。当变量比较多的时候,做成交互可缩放的形式更合适。
平行坐标图
平行坐标图
平行坐标图的优点是可以把多个变量并形排开,把每一个记录都以折线连接上。这样当数据量大的时候,其实可以很方便地观察各个变量的分布情况。
桑基图
桑基图
桑基图看起来跟平行坐标图有点像,但含义不一样。桑基图主要的用法是表征流量在各个层级的流动关系,上一层如何向下一层分散,下一层如何由下一层汇聚。
漏斗图
漏斗图
互联网运营有一个很重要的概念就是层级转化,这个每层的转化率用漏斗图来可视化,形神俱佳。如果两层之间的宽度近似,表征该层的转化率高;如果两层之间的宽度一下子减小了很多,表示转化率低。
仪表盘
仪表盘
仪表盘的观赏性大于实用性,实际上它的功能很简单,就是表征一个数值型变量在最小值和最大值之间的什么分位。
象柱形图
象柱形图
象柱形图其实就是柱形图,只不过把柱子换成了其它的图形。如果数据本身有比较具体、形象的含义和背景,那么用象柱形图是一种比较新颖的选择。
主题河流图
主题河流图
主题河流图好看,但不好解释,如果不是交互式的,最好不要用。它一般是把多个类别随时间的变化数据堆叠起来,表征随时间变化的趋势。
词云图
词云图
词云图即是对词汇的频数进行可视化,一个词越大它出现的次数就越多,一般与文本挖掘配合使用。
在实际的数据可视化中,往往不是孤立地用一个基本图形,把多个图形组合、邻接,能交叉对比出更多的信息。比如在柱状图上叠加折线图,在地图上叠加散点图,把多个柱状图放在一起对比等等。
记住数据可视化展现信息是第一位的,好看倒是其次。
图形语法
看了以上这么多图形,对可视化图形也有了一个感性的认识。现在基于ggplot2
粗略地介绍一下图形语法,个人总结,既不全面也不系统;想学习全面的图形语法请去专门学习。
-
数据(data):数据才是图形的灵魂,这点无需解释。
-
几何对象(geom):也就是图形本身,这是可视化的外形。根据数据特征,选择最合适的图形。
-
映射(mapping):映射即使把数据和图形给连接起来。映射什么数据变量,它是连续的还是离散的?
-
标度(scale):这个是从数据中剥离,但是控制数据如何映射到图形上的属性。图形中用什么通道来映射?常用的有颜色、长度、面积、形状、透明度等通道。
-
坐标系(coord):坐标系不一定非得是直角笛卡尔坐标系,比如对于地图并不适合,所以要做专门的投影操作。转换坐标系也有造成不同的视觉效果,比如把柱状图的坐标系转换成极坐标系就变成了玫瑰图。
-
统计变换(stat):对数据进行常规的统计操作,不过也可以先把数据处理好,可视化的时候就不再做变换。
-
分面(facet):如果图形维度较高,并不是一张图能说明的,那么就分面处理。分面实际上是多加了一个维度,就像一页纸和一页书的区别。
-
位置(position):一般来说图形各个元素的位置是由数据决定的,不过在不影响分析的前提下为了视觉美观也可以做一些微调。比如有的散点图只看它在y轴的高度,这个时候就可以在x轴上加扰动,没必要很多点都挤在一起。
掌握了图形语法,对理解可视化的本质,构思图形属性很有帮助;只有掌握了图形语法,才能真正自由地去创造数据可视化,而不仅仅只是往模板里套数据。
交互方式
去年在浙大接受可视化培训时,陈为老师(浙大教授,国内数据可视化领域比较权威的学者)提到了一句:交互性是数据可视化与信息图的区别。什么是交互,就是用户输入一个信号,可视化系统能给出响应,以帮助他更好地理解可视化。数据可视化的本质是以简单、直接的图形帮助读者更容易理解数据背后的规律,但许多可视化图形做得太复杂了,反而不利于解读,这个时候交互就能比较有效地解决这个问题。
交互的好处主要有:
-
节省空间。想想看,如果要把一个月每天的数据都做一张图,难道要做30张图?以交互的方式,让用户自己选择哪一天,然后进行数据筛选、计算、重新画图,1张图就够了。
-
展现源数据。图形一般是对数据的具象化,所以它一般不展现具体的数字。但是当用户就想了解具体的数字,不必再贴一张表格,把鼠标移到对应的位置就会弹出数据提示框。
-
引导性强。如果只把一张图扔给用户让他们自己去理解,这样体验太差;配个人在一边讲解成本又太高。交互式可视化系统可以做引导模块,引导用户去探索、理解,也能增加用户的兴趣和成就感。
-
视频教程:R语言recharts包绘制交互式图形
常用配色
史上最全的图表色彩运用原理
对于一个直男来说,配色方案一直是很苦恼的问题。有条件的话最好找设计师参考,没有的话最简单的方法就是参考比较成功的可视化作品的配色风格。
配色方案没有具体的规律总结,主要靠感觉。下面贴一些配色方案自行体会即可。
调色板
bootswatch
可在bootswatch上参考相关的CSS配色方案。
常用工具
数据可视化的工具很多,也有不多人已经总结过,这里就大致提一下。
ggplot2
R最擅长的除了统计建模就是可视化了,而ggplot2是最流行、最强大的绘图包(应该没有之一)。对于静态图,只要你有足够的创意,ggplot2基本都可以通过其系统完备的画图语法实现。而R中也有相关的包可以把ggplo2图形变成交互式,弥补了ggplot2本身不能交互的弱点。好色之旅
d3.js
d3.js个很强大的库,许多先进、前卫的图形在上面都有demo,它可以在较底层以较高的自由度画图并配置交互效果。但是它的学习曲线很陡,坑也较多。
echarts
echarts在江湖上被称为”百度为数不多的良心产品“,这个库跟d3相反,它离应用层更近,提供了许多示例模板,把代码copy过去改改数据就行了。所以echarts的优点是上手容易、图表漂亮、交互式效果也很好,缺点是自由度低,一旦你有个创意echarts没提供对应的模板,那就没办法了。
Excel
随着Excel的发展,它的图表也越来越丰富美观,很容易上手,仍然是把数据往模板里套的方式。推荐 3 个超赞的 EXCEL 插件,让你 5 分钟从小白变大神
PS & AI
这两个是设计师的工具,但是出了一张可视化的图之后往往需要进一步修缮,这就是设计师的工作了。可以生成一张pdf矢量图,然后导入PS或AI中,这样对每一个元素操作都很方便。生物AI插图素材获取和拼装指导 文章用图的修改和排版(2)
DataV
最后友情帮助阿里打个广告。DataV很适合做大屏可视化展示,效果很炫酷,而且模板越来越成熟,上手难度也越来越低,同时价格也不贵。
DataV做的大屏展示
思考一个问题:数据可视化到底是否需要编程?对于大数据量、自由度要求较高、创意设计强的可视化应当要编程(特别是前端编程),但是对于日常小规模、简化、通用的可视化,用工具即可。
而且随着数据可视化技术的发展,它的门槛一定是越来越低,越来越不需要编程也能做出很好的可视化效果。
应用场景
大屏展示
这种情况一般是企业级的数据可视化应用,一般是领导向客户展示介绍产品和业务时所用,所以它的难度和工作量也最高。大屏展示要求大气、炫酷、交互性强。
原型分享
比如用R中的shiny快速搭建一个可视化原型,然后在公司内部搭建一个内网服务器部署上去,内部同事都可以交互使用,很方便地了解产品原型及数据规律。这种情况下不必太花哨,但是要具体、清晰,还有要一定的交互性。
图文报告
这个是放在报告中或者PPT (你和PPT高手之间,就只差一个iSlide)中展示给别人看的,所以静态图表就行,这个难度最低。报告中的图表要求简洁、清晰、易于解读。
相关文章:
数据可视化基本套路总结
首先从维基百科上搬出数据可视化的概念: 数据可视化是关于数据之视觉表现形式的研究;其中,这种数据的视觉表现形式被定义为一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。 用人话简单来说,数据…...
TensorFlow域对抗训练DANN神经网络分析MNIST与Blobs数据集梯度反转层提升目标域适应能力可视化...
全文链接:https://tecdat.cn/?p39656 本文围绕基于TensorFlow实现的神经网络对抗训练域适应方法展开研究。详细介绍了梯度反转层的原理与实现,通过MNIST和Blobs等数据集进行实验,对比了不同训练方式(仅源域训练、域对抗训练等&am…...
DNS劫持和HTTPDNS
DNS 劫持是一种网络攻击手段,攻击者通过篡改域名系统(DNS)解析过程,将用户请求的域名重定向到恶意网站或其他不正确的地址。这种攻击可以用于多种目的,例如窃取用户数据、传播恶意软件或进行钓鱼攻击。 举个例子 假设…...
云原生微服务
能够认识到云原生微服务对应用程序设计的影响,描述无状态微服务,并比较单体和微服务架构。要充分利用运营模式,您需要以不同的方式思考应用程序设计。您需要考虑云原生微服务。此图像显示了一个应用程序,该应用程序被设计为小型微…...
【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置
【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置 本地版部署deepSeek R1 可以参考文章 3分钟教你搭建属于自己的本地大模型 DeepSeek R1 Ollama 是一个开源工具,旨在帮助用户轻松在本地计算机上运行、部署和管理大型语言模型(LLMs)…...
windows + visual studio 2019 使用cmake 编译构建静、动态库并调用详解
环境 windows visual studio 2019 visual studio 2019创建cmake工程 1. 静态库.lib 1.1 静态库编译生成 以下是我创建的cmake工程文件结构,只关注高亮文件夹部分 libout 存放编译生成的.lib文件libsrc 存放编译用的源代码和头文件CMakeLists.txt 此次编译CMak…...
使用Feign代替RestTemplet
Feign RestTemplet存在的问题 String url "http: //userservice/user/" order.getUserId(); User user restTemplate.getFor0bject(url, User.class);可读性差参数复杂URL难以维护 Feign声明式的Http客户端,官方地址:https://github.com…...
苹果笔记本安装jmeter
下载并安装jmeter即可,jmeter官网下载地址:Apache JMeter - Download Apache JMeter 参考以下文章:“https://blog.csdn.net/weixin_51664828/article/details/145008755”...
设备通过国标GB28181接入EasyCVR,显示在线但视频无法播放的原因排查
安防监控EasyCVR平台支持多种视频源接入,包括但不限于IP摄像头、NVR、编码器、流媒体服务器等。平台采用高效的视频流接入技术,支持大规模视频流的并发接入,确保视频流的稳定性和流畅性。 有用户反馈,项目现场使用国标GB28181接入…...
为什么我喜欢在 CSS 中使用 RegEx
说到正则(RegEx),我们第一反应往往是“在编程中用来匹配或验证字符串”,比如做表单验证。但其实在 CSS 中,也能用到与正则类似的选择器特性,为我们的样式管理带来诸多便利。别怀疑,以下就是如何…...
深度剖析 Redisson 分布式锁:原理、实现与应用实践
文章目录 写在文章开头详解Redisson 分布式锁使用和实现前置准备工作分布式锁的基本使用公平锁的使用联锁的使用读写锁基本使用常见问题Redisson和Jedis有什么区别redisson如何实现分布式锁redisson如何实现分布式锁的可重入redisson如何实现公平锁Redisson的watchdog机制是什么…...
今日AI和商界事件(2025-02-08)
今日AI领域的重大事件主要包括以下几个方面: 一、DeepSeek引发的行业震动 事件概述:DeepSeek作为近期崛起的AI模型,以其低成本、高性能的推理能力引发了广泛关注。其开源策略、独特的出身以及强大的算力表现,使得微软、英伟达等…...
Mac 基于Ollama 本地部署DeepSeek离线模型
最近节日期间最火的除了《哪吒》就是deepseek了,毕竟又让西方各个层面都瑟瑟发抖的产品。DeepSeek凭借其强大的AI能力真的是在全球多个领域展现出强大的影响力。由于受到外部势力的恶意攻击倒是deepseek官方服务不稳定,国内其他厂家的适配版本也不是很稳…...
Python截图轻量化工具
这是用Python做到截图工具,不过由于使用了ctypes调用了Windows的API, 同时访问了Windows中"C:/Windows/Cursors/"中的.cur光标样式文件, 这个工具只适用于Windows环境; 如果要提升其跨平台性的话,需要考虑替换ctypes的一些专属于W…...
怎麼在Chrome中設置代理伺服器?
出於隱私、安全或者訪問特定網路資源的需求,設置代理伺服器顯得尤為重要。本文將詳細介紹如何在Chrome流覽器中進行代理伺服器的設置。 代理伺服器是介於電腦和互聯網之間的一道“中間牆”。幫助間接訪問互聯網資源,這樣實際的IP地址被代理伺服器的IP地…...
【数据结构中链表常用的方法实现过程】
线性表 线性表包括:顺序表、链表、栈,队列等,本节我们先学习顺序表。 顺序表 利用新的数据类型——顺序表,操作数组 顺序表的本质就是对数组的增删改查。 /*** 打印顺序表中的所有元素*/Overridepublic void display() {for (int i 0; i…...
语言月赛 202308【小粉兔处理题解审核志愿者轮换】题解(AC)
》》》点我查看「视频」详解》》》 [语言月赛 202308] 小粉兔处理题解审核志愿者轮换 题目背景 又到了一周的周日,扶苏又像催命一样开始催促小粉兔处理题解审核志愿者的轮换。但是懒狗小粉兔总是把这项工作拖到第二天凌晨。 【这里有一张内部群聊图,…...
第二十二章:游戏结缘与现实的相遇
“终于结束了……” 小冷的手微微颤抖,笔在纸上划过,签下放弃 985 高校研究生入学资格的名字,那一刻,数月来压在心头沉甸甸的巨石轰然崩塌,扬起的尘埃渐渐消散。曾经,学术巅峰犹如夜空中遥不可及却又熠熠生…...
(ICLR=2025)生成的表征对齐:训练扩散Transformer比你想象的更简单
生成的表征对齐:训练扩散Transformer比你想象的更简单 paper是KAIST发表在ICLR 2025的工作 paper title:REPRESENTATION ALIGNMENT FOR GENERATION: TRAINING DIFFUSION TRANSFORMERS IS EASIER THAN YOU THINK Code:链接 ABSTRACT 最近的研究表明&…...
保姆级教程--DeepSeek部署
以DeepSeek-R1或其他类似模型为例,涵盖环境配置、代码部署和运行测试的全流程: 准备工作 1. 注册 Cloud Studio - 访问 [Cloud Studio 官网](https://cloudstudio.net/),使用腾讯云账号登录。 - 完成实名认证(如需长期使用…...
[css] 黑白主题切换
link动态引入 类名切换 css滤镜 var 类名切换 v-bind css预处理器mixin类名切换 【前端知识分享】CSS主题切换方案...
C语言练习题
文章目录 1. 递归实现将字符串str中的元素逆序2. 对数组arr进行冒泡排序(升序)3. 对数组从下标low到下标hihg区间内的元素进行快速排序(升序)4. 在数组中利用二分查找(折半查找)目标关键字5. 求n的阶乘6. 判断year是否为闰年7. 求…...
Lambda 表达式
一、Lambda 表达式简介 Lambda 表达式是一种简洁的函数式编程方式,用于实现只有一个方法的接口(例如函数式接口)。 基本语法 (parameters) -> expression (parameters) -> { statements; } 参数:可以有零个或多个参数。…...
Vue 鼠标事件合集,关于鼠标右键的处理方法(改写鼠标右键方法、自定义鼠标右键)
鼠标事件使用 mousedown"canvasDown($event)"按下事件合集 click 点击某个对象时触发 mousedown 鼠标按钮被按下时触发 mouseup 鼠标按钮被松开时触发 mouseleave 当鼠标指针移出元素时触发 dblclick 双击时触发 mousemove 鼠标移动时触发,…...
go语言中的接口
接口简介 现实生活中的接口 现实生活中手机、相机、U 盘都可以和电脑的 USB 接口建立连接。我们不需要关注 usb 卡槽大小是否一样,因为所有的 USB 接口都是按照统一的标准来设计的。 Golang 中的接口(interface) Golang 中的接口是一种抽象…...
如何在Android Studio中开发一个简单的Android应用?
Android Studio是开发Android应用的官方集成开发环境(IDE),它提供了许多强大的功能,使得开发者能够高效地创建Android应用。如果你是Android开发的初学者,本文将引导你如何在Android Studio中开发一个简单的Android应用…...
启明星辰发布MAF大模型应用防火墙产品,提升DeepSeek类企业用户安全
2月7日,启明星辰面向DeepSeek等企业级大模型业务服务者提供的安全防护产品——天清MAF(Model Application Firewall)大模型应用防火墙产品正式发布。 一个新赛道将被开启…… DeepSeek的低成本引爆赛道规模 随着DeepSeek成为当前最热的现象级…...
开箱即用的.NET MAUI组件库 V-Control 发布了!
之前写过挺多的MAUI Sample,其中有很多代码可以打包成组件,当组件完善到一定程度,我会把控件封装起来放到控件库中。 今天,在这个仓库建立一年零八个月后,我觉得可以考虑将其作为开源库发布。 有很多网友在观望.NET …...
android skia渲染介绍
Android AOSP 的渲染系统主要使用 Skia 图形库。Skia 是一个开源的 2D 图形库,它被广泛应用于 Android 的图形渲染中,负责绘制 UI 元素、文本、图像以及其他 2D 图形内容。 以下是 Android AOSP 中 Skia 的作用和它在渲染系统中的位置: 1. 什…...
MySQL的底层原理与架构
前言 了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。 了解MySQL架构 通过上面的架构图可以得知,Server层中主要由 连接器、查询缓存、解析器/分析器、优化器、执行器 几部分组成的,下面将主要…...
GB/T 43698-2024 《网络安全技术 软件供应链安全要求》标准解读
一、43698-2024标准图解 https://mmbiz.qpic.cn/sz_mmbiz_png/rwcfRwCticvgeBPR8TWIPywUP8nGp4IMFwwrxAHMZ9Enfp3wibNxnfichT5zs7rh2FxTZWMxz0je9TZSqQ0lNZ7lQ/640?wx_fmtpng&fromappmsg 标准在线预览: 国家标准|GB/T 43698-2024 相关标准: &a…...
Vue(4)
一.组件的三大组成部分-注意点说明 (1)scoped样式冲突 默认情况:写在组件中的样式会全局生效 → 因此很容易造成多个组件之间的样式冲突 ①全局样式:默认组件中的样式会作用到全局 ②局部样式:可以给组件加上scoped属…...
实验3 词法分析(二)
实验3 词法分析(二) [实验目的]: 1 . 熟悉给定的词法分析程序; 2 . 改进词法分析程序。 [实验内容]: 1.尝试多方面改进TEST语言的文法,参考教材附录B词法分析程序TESTscan.c,在此词法分析程序的基础上改进程序&#x…...
MYSQL第四次
目录 题目分析 代码实现 一、修改 Student 表中年龄(sage)字段属性,数据类型由 int 改变为 smallint 二、为 Course 表中 Cno 字段设置索引,并查看索引 三、为 SC 表建立按学号(sno)和课程号ÿ…...
CentOS 7配置samba服务设置文件共享
CentOS 7配置samba服务设置文件共享 一、生成另一个Linux系统,名为Linux-client,作为测试系统。 [rootliunx-client ~]# hostnamectl set-hostname Liunx-client二、如果没有则安装Samba服务,如果已经安装则省略此步。 yum install samba…...
分布式微服务系统架构第91集:系统性能指标总结
加群联系作者vx:xiaoda0423 仓库地址:https://webvueblog.github.io/JavaPlusDoc/ 系统性能指标总结 系统性能指标包括哪些? 业务指标、资源指标、中间件指标、数据库指标、前端指标、稳定性指标、批量处理指标、可扩展性指标、可靠性指标。 …...
【算法】动态规划专题⑦ —— 多重背包问题 + 二进制分解优化 python
目录 前置知识进入正题优化方法:二进制分解实战演练 前置知识 【算法】动态规划专题⑤ —— 0-1背包问题 滚动数组优化 python 【算法】动态规划专题⑥ —— 完全背包问题 python 进入正题 多重背包问题I https://www.acwing.com/problem/content/4/ 题目描述 有…...
Node.js学习指南
一、模块化规范 nodejs使用的模块化规范 叫做 common.js 规范: 每一个模块都有独立的作用域 代码在各自模块中执行 不会造成全局污染 每一个模块都是一个独立的文件(module对象) 模块可以被多次加载(module.exports 属性) 但是仅…...
Mybatis篇
1,什么是Mybatis ( 1 )Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁…...
微信小程序案例1——制作猫眼电影底部标签导航栏
文章目录 一、项目步骤1 新建一个无AppID的movie项目2将准备好的底部标签导航图标拷贝到movie项目下面(将图标文件夹image放到项目文件夹里)3 打开App.json配置文件,在pages数组里添加4个页面路径:电影“pages/movie/movie”、影院“pages/cinema/cinema…...
Docker 数据卷(Volume)详细介绍
Docker 数据卷(Volume)详细介绍 1. 什么是 Docker 数据卷? Docker 数据卷(Volume)是一种用于 持久化数据 和 容器间数据共享 的机制。由于容器的存储是临时的,容器删除后其中的数据会丢失,因此…...
Redis --- 使用Feed流实现社交平台的新闻流
要实现一个 Feed 流(类似于社交媒体中的新闻流),通常涉及以下几个要素: 内容发布:用户发布内容(例如文章、状态更新、图片等)。内容订阅:用户可以订阅其他用户的内容,获…...
WPF 在后台使TextBox失去焦点的方法
在软件设计开发的时候,偶尔会遇到在后台xaml.cs后台中,要将TextBox控件的焦点取消或者使TextBox控件获取焦点,下面介绍讲述一种简单的“只让特定的 TextBox 失去焦点”方法: 前端xaml代码示例: <StackPanel Orientation"…...
自动化测试、压力测试、持续集成
因为项目的原因,前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家,希望对需要的人有所帮助。 SoapUI 是什么? SoapUI 是一个开源测试工具,通过 soap/http 来检查、调用、实现 Web Service 的…...
Mac电脑上好用的压缩软件
在Mac电脑上,有许多优秀的压缩软件可供选择,这些软件不仅支持多种压缩格式,还提供了便捷的操作体验和强大的功能。以下是几款被广泛推荐的压缩软件: BetterZip 功能特点:BetterZip 是一款功能强大的压缩和解压缩工具&a…...
C++ 使用CURL开源库实现Http/Https的get/post请求进行字串和文件传输
CURL开源库介绍 CURL 是一个功能强大的开源库,用于在各种平台上进行网络数据传输。它支持众多的网络协议,像 HTTP、HTTPS、FTP、SMTP 等,能让开发者方便地在程序里实现与远程服务器的通信。 CURL 可以在 Windows、Linux、macOS 等多种操作系…...
[创业之路-276]:从燃油汽车到智能汽车:工业革命下的价值变迁
目录 前言: 从燃油汽车到智能汽车:工业革命下的价值变迁 前言: 燃油汽车,第一次、第二次工业革命,机械化、电气化时代的产物,以机械和电气自动化为核心价值。 智能汽车,第三次、第四次工业革…...
DeepSeek服务器繁忙问题的原因分析与解决方案
一、引言 随着人工智能技术的飞速发展,DeepSeek 等语言模型在众多领域得到了广泛应用。然而,在春节这段时间的使用过程中,用户常常遭遇服务器繁忙的问题,这不仅影响了用户的使用体验,也在一定程度上限制了模型的推广和…...
【python】简单的flask做页面。一组字母组成的所有单词。这里的输入是一组字母,而输出是所有可能得字母组成的单词列表
目录结构如下: . ├── static │ ├── css │ │ └── styles.css │ └── js │ └── scripts.js ├── templates │ ├── base.html │ ├── case_converter.html │ ├── index.html │ └── word_finder.html ├── app.py ├── tree.py…...
【华为OD-E卷 - 114 找最小数 100分(python、java、c++、js、c)】
【华为OD-E卷 - 找最小数 100分(python、java、c、js、c)】 题目 给一个正整数NUM1,计算出新正整数NUM2,NUM2为NUM1中移除N位数字后的结果,需要使得NUM2的值最小 输入描述 输入的第一行为一个字符串,字…...