Iris框架介绍 学习网址 Iris官网:https://www.iris-go.com/
Iris github地址:https://github.com/kataras/iris
Iris官方学习文档(英文):https://docs.iris-go.com/iris/
Iris中文文档1:https://learnku.com/docs/iris-go/10/why/3759
Iris中文文档2:https://www.topgoer.com/Iris/
Iris框架的特点 Iris是一款通过go语言编写的快速、简单、功能齐全、效率高、免费、开源的Web框架Iris支持MVC架构模式Iris可以被用来作为gRPC的web端口,为gRPC提供APIIris官网中被称作速度最快的Go后端开发框架 Iris入门 安装 安装的唯一要求是Go编程语言,版本在1.15及以上
安装Iris
go get github.com/kataras/iris/v12@master 确保gomod文件中正常导入如下包
require ( github.com/BurntSushi/toml v1.2.1 // indirect github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53 // indirect github.com/CloudyKit/jet/v3 v3.0.0 // indirect github.com/CloudyKit/jet/v6 v6.1.0 // indirect github.com/Joker/jade v1.1.3 // indirect github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06 // indirect github.com/andybalholm/brotli v1.0.4 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible // indirect github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/flosch/pongo2/v4 v4.0.2 // indirect github.com/golang/snappy v0.
从Clickhouse读大量数据并写入本地文件的Python实现 网上很多例子是讲怎么连clickhouse,但如果数据量很大,需要循环读取并写入,这些例子就不适用了。
这篇文章是用python3实现的读取大量数据并写入文件。用clickhouse-driver.Client中的execute_iter这个方法,代码示例如下:
# 连clickhouse取数据写入本地文件 from clickhouse_driver import Client client = Client(host='***.***.***.***', database='****', user='****', password='****') sql_01 = "" res_gen = client.execute_iter(sql_01) file_01 = "D:\\***\\***\\***.txt" with open(file_01,'w') as f: # 迭代的每个元素row是个tuple类型 for row in res_gen: # 写入文件前,tuple类型需要转成string s = '\t'.join(row) + '\n' f.write(s) 这样循环一条条数据写入文件,不会占用大量内存,有这方面需求的伙伴可以参考这个代码。
一、问题 在使用Collectors.toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper)(两个参数的)时,如果 key 有重复,则会报异常(IllegalStateException)。
二、分析 Collectors.toMap()是有三个重载方法(2个参数,3个参数,4个参数),如下所示:
keyMapper:Key 的映射函数
valueMapper:Value 的映射函数
mergeFunction:当 Key 冲突时,调用的合并方法
mapSupplier:Map 构造器,在需要返回特定的 Map 时使用
1、toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper); 2、toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction); 3、toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ?
该系列文章总纲链接:专题分纲目录 Linux环境
本章节内容的思维导图整理如下:
1 gcc编译器简介 gcc 是 Linux 平台下最常用的编译程序,它是Linux 平台编译器的事实标准。同时,在 Linux 平台下的嵌入式开发领域,gcc也是用得最普遍的一种编译器。gcc 之所以被广泛采用,是因为它能支持各种不同的目标体系结构。例如,它既支持基于宿主的开发(简单讲就是要为某平台编译程序,就在该平台上编译),也支持交叉编译(即在 A 平台上编译的程序是供平台 B 使用的)。目前,gcc 支持的体系结构有四十余种,常见的有 X86 系列、Arm、PowerPC 等。同时,gcc 还能运行在不同的操作系统上,如 Linux、Solaris、Windows 等。
1.1 安装gcc编译器编译环境 sudo apt-get install build-essential 1.2 编译简单的C程序 通过hello,world来学习gcc。程序如下: #include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } 我们假定该代码存为文件‘hello.c’。要用 gcc 编译该文件,使用下面的命令:
$ gcc hello.c -o hello -Wall -g 该命令将文件‘hello.c’中的代码编译为机器码并存储在可执行文件 ‘hello’中。机器码的文件名是通过 -o 选项指定的。该选项通常作为命令行中的最后一个参数。如果被省略,输出文件默认为 ‘a.out’。
如果当前目录中与可执行文件重名的文件已经存在,它将被覆盖。
选项 -Wall 开启编译器几乎所有常用的警告:强烈建议始终使用该选项。编译器有很多其他的警告选项,但 -Wall 是最常用的。默认情况下GCC 不会产生任何警告信息。当编写 C 或 C++ 程序时编译器警告非常有助于检测程序存在的问题。如果有用到math.h库等非gcc默认调用的标准库,请使用-lm参数;本例中,编译器使用了 -Wall 选项而没产生任何警告,因为示例程序是完全合法的;选项 "
在 js 中把我们的数据进行了分类,可以理解为 2 大类
基本数据类型:string,number,null,Boolean,undefined,symbol
引用数据类型:Object,Array,Function
区别:基本数据类型保存在栈里面,可以直接访问他的值,引用数据类型保存在堆里面,栈里面保存的是地址,通过栈里面的地址去访问堆里面的值。
在JavaScript中,我们可以分成两种类型:
基本类型复杂类型 两种类型的区别是:存储位置不同
一、基本类型 基本类型主要为以下 6 种:
NumberStringBooleanUndefinednullsymbol Number 数值最常见的整数类型格式则为十进制,还可以设置八进制(零开头)、十六进制(0x 开头)
let intNum = 55 // 10进制的55 let num1 = 070 // 8进制的56 let hexNum1 = 0xa //16进制的10 浮点类型则在数值汇总必须包含小数点,还可通过科学计数法表示
let floatNum1 = 1.1 let floatNum2 = 0.1 let floatNum3 = 0.1 // 有效,但不推荐 let floatNum = 3.125e7 // 等于 31250000 在数值类型中,存在一个特殊数值NaN,意为“不是数值”,用于表示本来要返回数值的操作失败了(而不是抛出错误)
console.log(0 / 0) // NaN console.log(-0 / +0) // NaN Undefined Undefined 类型只有一个值,就是特殊值 undefined。当使用 var或 let声明了变量但没有初始化时,就相当于给变量赋予了 undefined值
JavaScript Boolean 对象是 JavaScript 中用于表示逻辑值 true 或 false 的对象。它的作用非常简单,就是用于进行逻辑判断和条件语句的控制。
在 JavaScript 中,我们可以使用布尔运算符(如 &&、||、! 等)来进行逻辑运算,也可以使用比较运算符(如 ==、!=、>、< 等)来比较两个值的大小关系。在进行逻辑判断和条件语句的控制时,我们通常会用到布尔对象的值来进行判断。
下面是一些 JavaScript 布尔对象的使用示例:
var bool1 = true; // 定义一个布尔对象,值为 true var bool2 = false; // 定义一个布尔对象,值为 false if (bool1 && bool2) { // 逻辑运算,如果 bool1 和 bool2 都为 true,则执行语句块 console.log("Both bool1 and bool2 are true."); } else { console.log("At least one of bool1 and bool2 is false."); } if (bool1 || bool2) { // 逻辑运算,如果 bool1 或 bool2 中有一个为 true,则执行语句块 console.
系统版本 Centos7
IP:10.10.11.79 Master
IP:10.10.11.81 Slave
虚拟ip:10.10.11.77
客户端发起一个请求 ,请求没有到Nginx的实际IP上,而是请求的虚拟IP(会和实际IP通过配置文件进行绑定)
如果有一台Nginx服务器挂了,Keepalived会自动在备Nginx服务器上选一台当主服务器
1. 主从两台机器上分别启动nginx容器: 两台nginx容器要用相同的端口号:
docker run -d --privileged=true --name keepalivedNginx -p 82:80 nanlist/nginx1.23.1:v1.0 2.在两台宿主机器上分别安装 keepalived (注意:keepalived安装在实体机上,不是安装到Docker容器中) 1.联网下载到/usr/local目录下并解压有可能会提示连接不成功,加上它提示的命令再下载就好了 如果下载不下来用浏览器下载下来再传到服务上面也可以
两台服务器分别执行下:
主:
[root@Master html]# cd /usr/local [root@Master local]# wget https://www.keepalived.org/software/keepalived-1.4.2.tar.gz [root@Master local]# tar -zxvf keepalived-1.4.2.tar.gz 从:
[root@Slave html]# cd /usr/local [root@Slave local]# wget https://www.keepalived.org/software/keepalived-1.4.2.tar.gz [root@Slave local]# tar -zxvf keepalived-1.4.2.tar.gz 2.安装相关依赖,有不用下载了 主:
[root@Master local]# yum install -y gcc openssl-devel popt-devel 从:
[root@Slave local]# yum install -y gcc openssl-devel popt-devel 3.
平滑法是进行趋势分析和预测时常用的一种方法,利用修匀技术削弱短期随机波动对序列的影响,使序列平滑化,从而显示出变化的规律。根据平滑技术的不同,平滑法可分为移动平均法和指数平滑法。
一、移动平均法 设当前时期为t,已知时间序列观测值为 x 1 , x 2 , . . . , x t x_{1},x_{2},...,x_{t} x1,x2,...,xt,假设按连续n个时期的观测值计算一个平均数,作为对下一个时期即(t+1)时期的预测值,用 F t + 1 F_{t+1} Ft+1表示:
F t + 1 = 2 n ( x t + x t − 1 + . . . + x t − n − 1 ) = 1 n ∑ i = t − n + 1 t x i \begin{matrix} F_{t+1} & = &\frac{2}{n} (x_{t}+x_{t-1}+.
映射:存放在主存中的信息 按照 某种规则 装入cache
三种映射方法:
1.直接映射:
主存中的每一块只能装入cache中的唯一位置;
计算函数:cache行号 = 主存块号%cache总行数
如果有三块经过计算后只能放入同一个cache块里面,造成cache 其他块 容量浪费,块冲突概率高,并且资源利用率低;
比如:cache块 总行数为4
主存块号:13
cache行号 = 13 % 4 =1
1、预备阶段:了解人工智能的基本概念,学习Java基础语法和常用数据结构;
2、正式入门:学习机器学习的算法,包括线性回归、神经网络、支持向量机、决策树等;
3、实践阶段:使用Java语言实现机器学习算法;
4、深度学习:学习深度学习的算法,包括卷积神经网络、递归神经网络等;
5、实践阶段:使用Java语言实现深度学习算法;
6、人工智能应用:学习应用机器学习和深度学习的实际应用,如自然语言处理、计算机视觉等;
7、实践阶段:使用Java语言实现人工智能的实际应用。
如何解决安装Windows 11/Windows 10时找不到磁盘驱动器(找不到驱动器)
1、请先下载Intel Rapid Storage Technology (IRST)驱动程序,下载连结https://dlcdnets.asus.com/pub/ASUS/GamingNB/FX507ZE/RST_V19.1.0.1001_PV.zip
2、下载完成后,鼠标右键点击“RST_V19.1.0.1001_PV”压缩文件并选择“解压缩到:RST_V19.1.0.1001_PV”
3、将解压缩后的文件夹(RST_V19.1.0.1001_PV)整个复制到U盘的根目录下;
4、在您要在哪里安装Windows的画面找不到任何磁盘驱动器时,请点选“加载驱动程序--浏览”,找到“RST_V19.1.0.1001_PV”文件夹,选择“Intel RST VMD Controller 9A08”,然后点选“下一步”将会开始安装驱动程序
5、驱动程序安装完成后,磁盘驱动器即可正常显示
四、dev c++ 的使用和调试 1. 使用断点调试 若无法调试:工具–>编译选项–>代码生成/优化–>连接器–>产生调试信息–>no改成yes
调试的基本步骤;一、把右上角的release模式改成debug模式
二、设置断点
三、点击全部编译,在点击对勾即可
(有蓝色的箭头表示,还没有执行,即将要执行的语句,但是蓝色一行以上的,变量可以通过调试后的进行查看的两种方式,①添加查看,来输入变量值,并查看②选中变量或表达式,在点击添加查看,即可看见左侧栏的变量值)当然通过终端控制台也可以观察变量的值;
关于循环语句断点的设置和查看:在循环的开头和结尾分别往下依次设立断点,通过终端,便可查看语句执行的进度
调试的按钮及功能;
下一步:执行下一个语句,把函数当成一个语句直接给出结果单步进入:执行下一个语句,遇见函数,则进入函数,单步执行(观察循环和函数中变量的变换的最好方式)跳过:执行直到下一个断点之前,如果没有下一个断点,则直接执行到结束 端点常见错误:
①正常情况下(没有bug)会停在断点处,呈现蓝色箭头,如果有bug,断点处依旧为红色,则说明还语句就没有执行到,过者不被执行,因为没有满足条件
②调试报错:当执行了一个无效的内存引用,即操作了一个空地址,或者数组越界,就会报错
例如char a[100000000000],就会报错,因为,根本没有这么大的数值,已经远远超过了它本身的字节长度,在调试的时候会报错。所以char a[100],就可以,表是a有100个字符,每个字符可以写成1000000000……一百个
调试中出现的问题:
一、当在调试中无法往下进行scanf输入的时候,一定是循环条件出现了问题,甚至在调试的时候出现了报错,说明该输入语句有问题,请及时查阅关于此处的相关知识。,
还有可能是数组越界,还有可能陷入了死循环,通常时,(循环语句,时先执行i++之类的,还是执行循环while)引起的,要小心。
二、在scanf函数出调试的时候,一定先写下一步(或者单步进入)在在终端中输入值->回车,在进入下一步(单步进入)
使用问题:dev C++ 中的代码覆是因为不小心按了insert引起的插入模式,取消的话,在按一下insert
2. 使用cout/printfl函数来打印变量 在每一条循环或语句中用printf/cout 输出变量,并查看某几个变量的值,看该变量是否正确,不正确就是printf语句上面出现了错误,仔细想想就ok,
如果所有的变量都是正确的值,变问题就出现在下printf函数的下方。
在创建vmware虚拟机时创建的硬盘文件中。
关闭虚拟机后不能直接可以硬盘文件查看,可以通过打开虚拟机和真实系统进行传输,简单的办法是vmware安装vmware tools,可以通过共享文件夹传输。
VMware会在电脑里建立一个虚拟硬盘文件,虚拟系统的所有东西都在那里边,但是不能直接访问虚拟硬盘里的文件,你可以用DiskGenius软件来访问。
虚拟机所有的东西不管是系统还是第三方文件,体现在windows系统下,就是一个文件,所以你在虚拟机中否认什么操作都对真实系统没有影响。
最不济把这个虚拟机文件删除就行了,所以你在虚拟机上的电影就在这个文件里面,不开虚拟机是不能看电影的。如果重做系统了,只要文件在,电影应该也是在的。
虚拟机是用一个软件可以模拟真实电脑的安装环境,利用空闲的电脑硬件资源来完成系统的虚拟实验,以实现节约成本为目的的一种虚拟技术。
解决vmware虚拟机速度慢的3种方法 使用vmware虚拟操作系统的好处不用多说,但如果虚拟机运行速度十分缓慢,正常使用很卡的话是很痛苦的。本文介绍了3种提高虚拟机运行速度的方法,都是古意人实际操作过的方法,效果显著,推荐大家一试。
1、给虚拟机配置一个固态硬盘 硬件是基础,如果你的主机跑win7都很卡,那你装vmware虚拟机就是无本之木,无水之源。
如果你的主机平时运行速度良好,但一跑虚拟机就卡顿,建议给虚拟机单独配置一个SSD固态硬盘,提升效果那是杠杠的。
给虚拟机单独配一块硬盘好处多多,就算以后你升级电脑,将旧电脑抛弃,只要将虚拟机所在系统的硬盘安装到新电脑上,虚拟机系统就回来了。
特别是使用5400转硬盘的朋友,一定要给虚拟机配置一个SSD固态硬盘,不然实在太痛苦了,古意人亲身体会。
三星固态硬盘京东购买地址:点我
固态硬盘建议直接上三星的,大品牌值得信赖。还是那句话,其他配置可以省,数据无价,硬盘一定要上高质量的,否则哭都来不及。
2、关闭操作系统外观特效 windows操作系统从vista版本开始,越来越注重视觉效果,为了开启各种外观效果会耗费较多性能资源,建议虚拟机里面将这些视觉效果功能全部关闭。
关闭视觉效果的设置主要在两个地方:
性能选项
在桌面的计算机图标上点击右键,进入“属性”对话框,然后点击”高级系统设置”。
弹出“系统属性”窗口,找到选项卡“高级”,进入设置,弹出如下窗口。选择“调整为最佳性能”。
使用windows基本主题样式
从vista版本开始,windows默认开启了aero玻璃效果,很耗系统资源。
桌面上右键“个性化”,进入主题设置,选择“windows基本主题”即可。
3 优化虚拟机内存使用 古意人使用vmware虚拟机跑win7系统,主机系统配置还不错,但是虚拟机一启动就卡,问题就出在对于虚拟机内存的分配使用上。
让虚拟机只使用物理内存
如果虚拟机的物理内存划分不太够,那虚拟机系统会自动使用硬盘作为虚拟内存,这时你就会听到电脑硬盘的声音吱吱响,但是速度却如蜗牛一般。
同时,默认设置下虚拟机与主机之间内存可以进行交换,也就是说,如果你主机的内存不够了,会从虚拟机抢一部分内存过去,这也是导致虚拟系统运行速度下降的原因。
解决方法:在菜单栏“编辑”下找到“首选项”。
在内存选项卡中:
选择“调整虚拟机内存使其适应预留的主机”。
在优先级选项卡中:
抓取的输入内容,选择“高”。
针对单个虚拟机系统的设置
上面的设置是针对所有虚拟机的,还需要对单个虚拟机系统进行设置。
进入单个虚拟机系统的设置界面,找到如下图的高级选项。
将抓取的输入内容,选择“高”。
“禁用内存页面调整”打勾。
通常,我们会用win+R,打开运行框,然后输入cmd,此时就可以进入cmd
其实这个时候我们可以清楚的看到“C:\Windows\system32\cmd.exe”,我们这种操作进入的.exe这个应用程序
那么我们如何以管理员的方式进入了,下面提供两种方法
在上面的界面中输入命令 net user administration /active:yes
同理,关闭的命令是: net user administration /active:no
2.我们首先找到cmd.exe文件所在的位置,可以到上面所显示的目录“C:\Windows\system32\cmd.exe”里面去查找,也可以点击widows图标,然后在widows系统中,我们就可以看见cmd了
右键,选择更多,选择以管理员的身份运行即可
这个时候我们可以清晰的看见上面显示的是“管理员:命令提示符”
对于上面两种方法,我更加喜欢第2种方法,不过,喜欢命令行的朋友也可以使用第一种哦
IndexError: too many indices for array: array is 0-dimensional, but 1 were i:
这个意思就是你的数组是0维的,但是你却取了1维的数据
出现这样的情况你因为你矩阵的维度出现了冗余情况,比如你把一组数放入矩阵,矩阵默认的维度是2,但是你其实只有一列数,或者你实际是2维的数据,你将其转为3维数据形式,也会报错。
因此可以先用np.shape()函数查看你的矩阵维度,是否出现了(n,)这样的情况。
然后对矩阵进行reshape重构,或者np.squeeze去除冗余自由度就可以避免这样的问题。
data = np.reshape(data,[-1,20,28,28])
or
Y_prediction_test = np.squeeze(d['Y_prediction_test'])
例如: loss.data.cpu().numpy()[0] 总是报“IndexError: too many indices for array: array is 0-dimensional, but 1 were i:”这个错误,然后这里我用np.shape(loss.data.cpu().numpy()) 查看,发现输出为()
这里就发现“loss.data.cpu().numpy()”是0维的,但是你这里却取了0维的第一个数“loss.data.cpu().numpy()[0]”,所以是错误的
有两种解决方法,分别是:
(1)直接取该0维的数
loss.data.cpu().numpy()
(2)利用上述的reshape函数,将这个数组转为1维的
loss.data.cpu().numpy().reshape(1,-1)[0]
python:IndexError: too many indices for array_furuit的博客-CSDN博客
先准备两个空的远程仓库
https://gitee.com/fox9916/gaoxTest.git
http://192.168.100.54/git/gaoxing/gaoxTest.git
如果远程仓库里有readme这样的文件,先pull一下,如果pull的时候失败,提示:fatal: refusing to merge unrelated histories
那么在进行git pull 时,添加一个可选项
git pull origin master --allow-unrelated-histories
有两种方法
方法一: 使用 git remote add 命令
1# 本地仓库与远程仓库关联起来,再查看一下远程仓库情况
git remote add origin https://gitee.com/fox9916/gaoxTest.git
git remote -v
2# 使用如下命令再添加另一个远程仓库
git remote add sundyn http://192.168.100.54/git/gaoxing/gaoxTest.git
3# 再次查看远程仓库的情况,可以看到已经有两个远程仓库了。然后再使用相应的命令 push 到对应的仓库就行了。这种方法的缺点是每次要 push 两次。
git push origin master:master
git push sudnyn master:master
方法二: 使用 git remote set-url 命令
1#删除方法一的 sundyn 远程仓库。
git remote rm sundyn
2#使用如下命令添加远程仓库。
git基本使用小结
之前公司的版本控制工具一直用的是svn,最近要改用git,之前用svn一直很熟,没用过git,顺应公司形势学习一下最基本的使用,避免正式切换后影响项目进度。
下载、安装都很简单,网上有很多资源,选个最新版本下载一下,安装。
安装成功后,会在开始菜单中出现这几个东西:
如果你的本机是安装成功第一次使用,先配置一下一些基本的信息
$ git config--global user.name "Your Name"
$ git config --global user.email"email@example.com"
github大伙总该听说过的吧,码云就是中国版的github,如果有兴趣,可以一起了解一下,毕竟有时候github抽起风来,啥都搞不来。所以还是国内的环境好,中国的github还是很适用于大部分国人的,虽然里面的内容不多,但是相较于github的国外服务器,码云在国内的速度那是杠杠的,而且,最最关键的是,私有项目免费!私有项目免费!私有项目免费!!!
码云(Git@OSC)是开源中国社区团队推出的基于Git的快速的、免费的、稳定的在线代码托管平台,不限制私有库和公有库数量,所以这我要做的就是在码云上注册一个帐号,创建一个私有项目(千万别把公司的项目,建成公有项目,否则可能要恭喜你,你马上要game over了),把我本地仓库的项目上传到码云上。以后不管你在公司还是在家,就可以自由的上传、下载你的项目了。
一、在码云上创建项目名称为demo的项目,地址为https://gitee.com/fox9916/demo.git
二、打开GitBash ,用cd命令进入本地项目目,然后把初始化一下,把本地的目录变成git本地仓库, git status 可以查看本地目录的状态信息
git init
git status
三、将你本地仓库与码云上的远程仓库关联起来
git remote add origin https://gitee.com/fox9916/demo.git
四、在你准备上传你的项目之前,最好更新一下项目,确保没有和远程仓库的代码有冲突
git pull --rebase origin master
五、把你的项目复制到这个目录下,用命令添加你要上传的项目,再提交到本地暂存区,最后把本地仓库项目提交到远程仓库。git 是强烈建议你在提交代码的时候,要写备注注释的,所以既然人家是强烈建议,你就别懒了。
git add . 添加目录下所有发生改变的文件
git commit -m '注释信息'
git push -u origin master 本地仓库代码提交至远程仓库
如图,上传成功!
六、新建一个目录,从码云上把上传的代码下载下来:
git clone https://gitee.com/fox9916/demo.git
这些都是最基本的使用,平时开发上传、下载基本够用了,如果要开分支什么的,也很简单。
查看所有分支 :gitbranch -a
切换到某一分支:git checkout 分支名称
目录
一、查看网段、子网掩码、网关
二、在 Linux 系统中手动修改配置文件 ifcfg-ens33
一、查看网段、子网掩码、网关 1、进入 VMware 虚拟机后,选择 编辑(E),找到 虚拟机网络编辑器(N)...;
2、点击右下角的 更改设置(C);
3、点击 VMnet8;
4、
点击右下角 ① DHCP 设置(P)...;
找到 ② 里面的
子网 IP:
子网掩码:
网关 IP(G):
在 4、里面展示的都是默认的 子网 IP:和 网关 IP:,他们两个是可以进行修改的;
子网 IP 在如下地方修改:
一般修改的是第三位的数字,最后一位数字 0 不能动。如:可以把 245 修改成 246、247、88...
网关 IP(G) 在如下地方修改:
跟子网 IP 保持一致,除了最后一位数字 2。
他们修改后唯一的不同就是最后一位数字的不同。
二、在 Linux 系统中手动修改配置文件 ifcfg-ens33 1、使用 su - 命令切换到 root 用户;
2、使用 vim 编辑器编辑 ifcfg-ens33 文件:vim /etc/sysconfig/network-scripts/ifcfg-ens33(直接复制这条命令就可以啦);
[root@centos ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 3、对文件内容进行修改;
忙里偷闲,在网上看到一绝美论文配图,制图优美,配色赏心悦目;是由作者IndrajeetPatil集合开发的ggstatsplot包,其实说白了,就是ggplot2的升级版,该升级版将箱线图与小提琴图进行了整合,话不多说,直接上操作!
组间的均数比较(ggbetweenstats函数) #作物表型记录本
#加载包
library(ggstatsplot)
library(ggplot2)
#读取包自带数据,默认前6行
head(movies_long)
#使用ggbetweenstats函数进行参数设置并绘图
ggbetweenstats(
data = movies_long,
x = mpaa, # 设置横坐标分组,分组需≥2
y = rating,# 设置纵坐标分组,需数值型变量
)
图片上部分的一行代表(Frequentist)的一些统计值,下面部分代表Bayesian统计值,且在这其中,下方的Bayesian可以去掉,只要设置默认情况下参数type = "p"为type = "np"即可。
#加载包
library(ggstatsplot)
library(ggplot2)
#读取包自带数据,默认前6行
head(movies_long)
#使用ggbetweenstats函数进行参数设置并绘图
ggbetweenstats(
data = movies_long,
x = mpaa, # 设置横坐标分组,分组需≥2
y = rating,# 设置纵坐标分组,需数值型变量
type = "np", #期望的统计类型(“参数”或“非参数”或“稳健”或“贝叶斯”)。也接受相应的缩写:“p”(参数)、“np”(非参数)、“r”(稳健)或“bf”resp。
messages = TURE# 逻辑上决定是否显示贝叶斯因子对零假设的偏好。此参数仅与参数测试相关(默认值:TRUE)
)
组间的比较(ggwithinstats函数) ggwithinstats用于绘制组内比较的小提琴箱线组合图,此函数为ggbetweenstats的孪生函数,行为方式也基本相同。绘图结构之间区别在于在组与组均值之间通过路径连接来突出数据间彼此配对。 还以包里自带数据进行演示,最简单的调用方式:
#以bugs_long数据集中任意两列分别作为纵横坐标进行分析
aa <- ggwithinstats(data = bugs_long,x=condition,y=desire)
参数检验 #数据清洗,进行参数检验
qw1 <- dplyr::filter(bugs_long, condition %in% c("