超详细的热图绘制教程(5000余字),真正的保姆级教程

生物信息学习的正确姿势

NGS系列文章包括NGS基础、高颜值在线绘图和分析、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。

以下文章原始来源于蚂蚁生信 ,作者蚂蚁生信

直接来源R语言统计与绘图,函数解释来自医科堂。

经常会想到用热图来展示某个基因或某些基因的表达量问题,今天用R中的pheatmap包一步步绘制热图。

如果不想写代码,在线版可以满足大部分需求,高颜值免费在线绘图工具升级版来了~~~

系统学习R见 送书《R语言数据分析和可视化》 | 这个为生信学习和生信作图打造的开源R教程真香!!!


目  录

  • 1. 绘图前准备

    • 1.1 设置工作目录

    • 1.2 安装和加载R包

    • 1.3 读取查看数据

  • 2. 绘制热图

  • 3. 自定义热图

    • 3.1 热图横向标准化

    • 3.2 图形外观调整

    • 3.3 去除横纵坐标标签

    • 3.4 修改图例

    • 3.5 设置字体

    • 3.6 调整横纵向聚类

    • 3.7 调整分组标签角度

    • 3.8 添加图形标题

    • 3.9 调整热块大小

    • 3.10 划分聚类热图区块

    • 3.11 调整热图显示数值

    • 3.12 标记热图区块

  • 4. 构建分组信息

    • 4.1 构建纵向分组信息

    • 4.2 构建横向分组信息

    • 4.3 共同组合二者

  • 5. 保存图形

  • 6. pheatmap()函数解释


1. 绘图前准备

1.1 设置工作目录

首先清除环境变量,设置工作目录,工作目录是R用来读取文件和保存结果的默认目录。

我一般是在C盘新建一个文件夹当做R的工作目录,所有的文件都复制到这里面处理。

rm(list=ls()) # 清除环境变量
setwd("C:/Rdata") # 设置工作目录
getwd() # 查看当前的工作目录
# [1] "C:/Rdata"

1.2 安装和加载R包

安装我们绘图需要用的包,如果已安装,直接加载就好了。

install.packages("pheatmap") # 安装包
install.packages("ggplot2") # 安装包
library(pheatmap) # 加载包
library(ggplot2) # 加载包

1.3 读取查看数据

演示数据不是内置数据集,如需要演示数据,请后台回复热图即可免费获取。

data <- read.table("test.FPKM.txt",  # 读取的数据文件名称,这里文件是放在工作目录下header=T, # 数据集第一行为变量名row.names=1, # 第一列为行名sep="\t") # 指定分隔符号
dim(data) # 查看变量有多少行多少列
#[1] 21  9
head(data) # 查看数据集前六行

2. 绘制热图

先绘制个基本款的热图。

p <- pheatmap(data)
基本图形

3. 自定义热图

3.1 热图横向标准化

设置标准化方向scale,对其横向标准化。

p <- pheatmap(data, scale="row")

3.2 图形外观调整

设置边框为白色,去掉横向、纵向聚类。

p <- pheatmap(data, scale="row",border="white", # 设置边框为白色cluster_cols = F, # 去掉横向、纵向聚类cluster_rows = F)

3.3 去除横纵坐标标签

去掉横纵坐标中的id。

p <- pheatmap(data,scale="row",border="white",  # 设置边框为白色cluster_cols = F, # 去掉横向、纵向聚类cluster_rows = F,show_rownames = F, #去掉横、纵坐标idshow_colnames = F)
去掉横轴和纵轴的名称

3.4 修改图例

3.4.1 不显示右上角图例

p <- pheatmap(data,scale="row",border="white",  # 设置边框为白色cluster_cols = F, # 去掉横向、纵向聚类cluster_rows = F,show_rownames = F, #去掉横、纵坐标idshow_colnames = F,legend = F) # 去掉图例
将右上角的图例去掉

3.4.2 设置图例范围

p <- pheatmap(data,scale="row",border="white",  # 设置边框为白色cluster_cols = F, # 去掉横向、纵向聚类cluster_rows = F,show_rownames = F, #去掉横、纵坐标idshow_colnames = F,legend = T, # 添加图例legend_breaks=c(-1,0,1)) # 设置图例范围# 也可以设置legend_breaks=c(-2,0,2)试试
更改图例范围

3.5 设置字体

3.5.1 设置图形字体大小

设置图中字的大小,使用fondsize参数来设置。

p <- pheatmap(data,scale="row",border="white",  # 设置边框为白色cluster_cols = F, # 去掉横向、纵向聚类cluster_rows = F,show_rownames = T, #显示横、纵坐标idshow_colnames = T,legend = F, # 去掉图例fontsize = 8)  # 设置字体大小
# 也可以设置其他大小试试。
设置字的大小

3.5.2 分别指定横纵字体大小

分别指定横向和纵向字体大小,使用fontsize_rowfontsize_col参数设置。

p <- pheatmap(data,scale="row",border="white",  # 设置边框为白色cluster_cols = F, # 去掉横向、纵向聚类cluster_rows = F,show_rownames = T, #显示横、纵坐标idshow_colnames = T,legend = T, # 显示图例fontsize_row = 12, # 分别设置横向和纵向字体大小fontsize_col = 16)  
改变横向和纵向字体的大小

3.6 调整横纵向聚类

3.6.1 调整横纵向聚类树高

分别设置横向纵向的树高,使用treeheight_coltreeheight_row参数设置。

p <- pheatmap(data,scale="row",border="white", # 设置边框为白色cluster_cols = T, # 显示横向、纵向聚类cluster_rows = T,treeheight_col = 50, # 分别设置横、纵向聚类树高treeheight_row = 45)
设置横向和纵向聚类热图的树形高度

3.6.2 调整聚类距离类型

设置聚类的距离类型,使用clustering_distance_rows参数指定,分为如下几类:correlation,euclidean,maximum,manhattan,canberra,binary,minkowski

p <- pheatmap(data,scale="row",border="white", # 设置边框为白色cluster_cols = T, # 显示横向、纵向聚类cluster_rows = T,clustering_distance_rows = "correlation", # 设置聚类的距离类型treeheight_col = 50, # 分别设置横、纵向聚类树高treeheight_row = 45)
聚类的距离类型

3.6.3 调整聚类方法

调整聚类的方法,使用clustering_method参数指定,可选有'ward', 'ward.D', 'ward.D2', 'single', 'complete', 'average', 'mcquitty', 'median' or 'centroid'.

p <- pheatmap(data,scale="row",border="white", # 设置边框为白色cluster_cols = T, # 显示横向、纵向聚类cluster_rows = T,clustering_distance_rows = "euclidean", # 设置聚类的距离类型clustering_method="single", # 设置聚类方法treeheight_col = 50, # 分别设置横、纵向聚类树高treeheight_row = 45)
调整聚类的方法

3.7 调整分组标签角度

设置分组标签的角度,可以使用参数angle_col指定,可选有270、0、45、90、315等。

p <- pheatmap(data,scale="row",angle_col = 45, # 设置显示角度clustering_distance_rows = "minkowski",clustering_method="complete",border="white",  cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
分组是否斜体,旋转多少度

3.8 添加图形标题

给图形增加标题,可以使用main参数指定。

p <- pheatmap(data, scale="row", border="white",main="Gene1", # 设置图形标题angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
图片添加主题

3.9 调整热块大小

分别调整热图方块宽度和高度,可以使用cellwidthcellheight参数指定。

p <- pheatmap(data, scale="row", border="white",cellwidth = 40,cellheight = 20, # 设置热图方块宽度和高度main="Gene1", angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
调整热图的宽度和高度

3.10 划分聚类热图区块

根据热图聚类对其进行区块儿划分,可以使用cutree_colscutree_rows参数指定

p <- pheatmap(data,scale="row",cutree_cols = 6, cutree_rows =5, # 列划为6块,行为5块main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",border="white",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
注:此处我去掉了热图块儿的大小;cellwidth = 8,cellheight = 6
对聚类热图进化划分

在上图基础上增加边缘线。

p <- pheatmap(data,scale="row", border="#8B0A50",cutree_cols = 6, cutree_rows =5,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
给热图块儿边缘添加颜色

3.11 调整热图显示数值

热图上是否展示数值,大小和颜色,大小以及数值展示类型,可以使用display_numbersfontsize_numbernumber_colornumber_format等参数设置。

3.11.1 热图上显示数值

使用display_numbers参数指定是否显示数值。

p <- pheatmap(data,scale="row",border="#8B0A50",display_numbers = T, # 热图上显示数值cutree_cols = 3,cutree_rows =4,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
添加fpkm至热图方块儿内

3.11.2 设置显示数值的大小

使用fontsize_number参数指定数值的显示大小。

p <- pheatmap(data,scale="row",border="#8B0A50",fontsize_number = 10, display_numbers = T,cutree_cols = 3,cutree_rows =4,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
添加数值大小(放大缩小)

3.11.3 设置数值的颜色

使用number_color参数指定数值的颜色。

p <- pheatmap(data,scale="row",border="#8B0A50",number_color="red",fontsize_number = 10,display_numbers = T,cutree_cols = 3,cutree_rows =4,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
设置值的颜色

3.11.4 设置数值显示类型

使用number_format参数指定数值显示类型,下图显示为科学计数法。

p <- pheatmap(data,scale="row", border="#8B0A50", number_color="red",number_format="%.2e",fontsize_number = 10,display_numbers = T,cutree_cols = 3,cutree_rows =4,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
设置值的类型

3.12 标记热图区块

对热图方块儿进行标记;display_numbers,如果该值大于1,则为+,否则为-。

p <- pheatmap(data,scale="row",number_color="red",number_format="%.2e",border="#8B0A50",fontsize_number = 16,display_numbers = matrix(ifelse(data > 1, "+", "-"), nrow(data)),cutree_cols = 3,cutree_rows =4,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)
# 也可以设置display_numbers = matrix(ifelse(data > 2, "++", "-"), nrow(data))试试
为热图方块儿内容添加标记

4. 构建分组信息

构建纵向和横向分组信息(有3个处理,分别是:盐、干旱和热应激);以及时间:0-3day,对3类基因21个基因进行分组,分别是:"WRKY", "AP2", "YABBY"。

4.1 构建纵向分组信息

annotation_col = data.frame(Deal_with = factor(rep(c("Salt", "Drought","Heat"), 3)),Day=factor(rep(c("Day1", "Day2","Day3"), 3)))
rownames(annotation_col)
# [1] "1" "2" "3" "4" "5" "6" "7" "8" "9"
colnames(data)
# [1] "Q1" "Q2" "Q3" "F1" "F2" "F3" "T1" "T2" "T3"
rownames(annotation_col) <- colnames(data)
head(annotation_col)
#    Deal_with  Day
# Q1      Salt Day1
# Q2   Drought Day2
# Q3      Heat Day3
# F1      Salt Day1
# F2   Drought Day2
# F3      Heat Day3
pheatmap(data, annotation_col = annotation_col)
p <- pheatmap(data, scale="row",annotation_col = annotation_col,number_color="red",number_format="%.2e",border="#8B0A50",fontsize_number = 8,display_numbers = matrix(ifelse(data > 2, "++", "-"), nrow(data)),cutree_cols = 3,cutree_rows =4,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)

4.2 构建横向分组信息

annotation_row = data.frame(GeneClass = factor(rep(c("WRKY", "AP2", "YABBY"),7)))
rownames(annotation_row) <- rownames(data)
head(annotation_row)
#       GeneClass
# Gene1      WRKY
# Gene2       AP2
# Gene3     YABBY
# Gene4      WRKY
# Gene5       AP2
# Gene6     YABBY
pheatmap(data, annotation_row =annotation_row)
p <- pheatmap(data, scale="row",number_color="red", annotation_row =annotation_row,number_format="%.2e",border="#8B0A50",fontsize_number = 16, display_numbers = matrix(ifelse(data > 2, "++", "-"), nrow(data)),cutree_cols = 3,cutree_rows =4,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)

4.3 共同组合二者

p <- pheatmap(data,annotation_col = annotation_col,annotation_row = annotation_row)
p <- pheatmap(data,scale="row",number_color="red",annotation_col = annotation_col,annotation_row = annotation_row,number_format="%.2e",border="#8B0A50",fontsize_number = 15,display_numbers = matrix(ifelse(data > 2, "++", "-"),nrow(data)),cutree_cols = 3,cutree_rows =4,main="Gene1",angle_col = 0,clustering_distance_rows = "minkowski",clustering_method="complete",cluster_cols = T,treeheight_col = 20,cluster_rows = T,treeheight_row = 20)

5. 保存图形

可以保存为pdf/jpeg/png格式,建议保存为pdf/jpeg,因为二者清晰度高。

p <- pheatmap(data, annotation_col = annotation_col,annotation_row = annotation_row,filename = "基因家族热图.pdf",width = 10, height = 8)
p <- pheatmap(data,annotation_col = annotation_col,annotation_row = annotation_row,filename = "基因家族热图.jpeg",width = 10,height = 8)
p <- pheatmap(data,annotation_col = annotation_col,annotation_row = annotation_row,filename = "基因家族热图.png",width = 10,height = 8)

6. pheatmap()函数

pheatmap(mat, color = colorRampPalette(rev(brewer.pal(n = 7, name ="RdYlBu")))(100), kmeans_k = NA, breaks = NA, border_color = "grey60",cellwidth = NA, cellheight = NA, scale = "none", cluster_rows = TRUE,cluster_cols = TRUE, clustering_distance_rows = "euclidean",clustering_distance_cols = "euclidean", clustering_method = "complete",clustering_callback = identity2, cutree_rows = NA, cutree_cols = NA,treeheight_row = ifelse((class(cluster_rows) == "hclust") || cluster_rows,50, 0), treeheight_col = ifelse((class(cluster_cols) == "hclust") ||cluster_cols, 50, 0), legend = TRUE, legend_breaks = NA,legend_labels = NA, annotation_row = NA, annotation_col = NA,annotation = NA, annotation_colors = NA, annotation_legend = TRUE,annotation_names_row = TRUE, annotation_names_col = TRUE,drop_levels = TRUE, show_rownames = T, show_colnames = T, main = NA,fontsize = 10, fontsize_row = fontsize, fontsize_col = fontsize,angle_col = c("270", "0", "45", "90", "315"), display_numbers = F,number_format = "%.2f", number_color = "grey30", fontsize_number = 0.8* fontsize, gaps_row = NULL, gaps_col = NULL, labels_row = NULL,labels_col = NULL, filename = NA, width = NA, height = NA,silent = FALSE, na_col = "#DDDDDD", ...)## 函数解释
mat # 需要绘制热图的数字矩阵。
color # 表示颜色,赋值渐变颜色调色板colorRampPalette属性,选择"蓝,白,红"渐变,分为100个等级
# 例 color =  colorRampPalette(c("navy", "white", "red"))(100)
kmeans_k # 绘制热图的行聚类数,如果是NA,那么行不会聚类。
breaks  # 设置mat数值范围的数字序列
border_color # 表示热图上单元格边框的颜色,如果不绘制边框,则使用NA
cellwidth # 表示每个单元格的宽度,若选择NA则表示适应窗口
cellheight # 表示每个单元格的高度,若选择NA则表示适应窗口
scale # 表示值均一化的方向,或者按照行或列,或者没有,值可以是"row",  “column” 或者"none"
cluster_rows # 表示进行行的聚类,值可以是FALSE或TRUE
cluster_cols # 表示进行列的聚类,值可以是FALSE或TRUE
clustering_distance_rows # 表示行距离度量的方法
clustering_distance_cols # 表示列距离度量的方法
clustering_method # 表示聚类方法,值可以是hclust的任何一种,
# 如"ward.D",“single”,  “complete”, “average”, “mcquitty”, “median”, “centroid”, “ward.D2”
clustering_callback # 回调函数来修改聚类
cutree_rows # 基于层次聚类(使用cutree)划分行的簇数(如果未聚集行,则忽略参数)
cutree_cols  # 基于层次聚类(使用cutree)划分列的簇数(如果未聚集行,则忽略参数)
treeheight_row # 行的树的高度,
treeheight_col # 列的树的高度
legend # TRUE或者FALSE,表示是否显示图例
legend_breaks # 设置图例的断点,如legend_breaks =  -1:4
legend_labels # legend_breaks对应的标签例:legend_breaks = -1:4, legend_labels = c(“0”,“1e-4”, “1e-3”, “1e-2”, “1e-1”, “1”)
annotation_row # 行的分组信息,需要使用相应的行名称来匹配数据和注释中的行,注意之后颜色设置会考虑离散值还是连续值,格式要求为数据框
annotation_col # 列的分组信息,需要使用相应的列名称来匹配数据和注释中的列,格式要求为数据框
annotation_colors  # 用于手动指定annotation_row和annotation_col  track颜色的列表。
annotation_legend # 是否显示图例的名称。
annotation_names_row # 是否显示行注释的名称。
annotation_names_col # 是否显示列注释的名称。
show_rownames # 是否显示行名
show_colnames # 是否显示列名
main  # 图的名字
fontsize # 图的字体大小
fontsize_row # 行名的字体大小,默认与图的字体大小相同
fontsize_col # 列名的字体大小,默认与图的字体大小相同
angle_col # 列标签的角度,可选择 (0, 45, 90, 270 and 315)
display_numbers # 表示是否将数值显示在热图的格子中,如果这是一个矩阵(与原始矩阵具有相同的尺寸),则显示矩阵的内容而不是原始值。
number_format # 设置显示数值的格式,较常用的有"%.2f"(保留小数点后两位),"%.1e"(科学计数法显示,保留小数点后一位)
number_color # 设置显示内容的颜色
fontsize_number # 设置显示内容的字体大小
labels_row  # 代替行名的自定义标签 
labels_col # 代替列名的自定义标签
filename # 图片保存位置以及文件名
width # 手动设置输出文件的宽度(单位:英寸)
height # 手动设置输出文件的高度(单位:英寸)
silent # 不绘制热图
na_col # 缺失值的颜色

本文完。

如果觉得不错,记得分享、点赞、点在看哦!

本文转载自蚂蚁生信,函数解释复制自医科堂

往期精品(点击图片直达文字对应教程)

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/68200.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机械制图-画、读组合体的视图

制图是什么&#xff1f;制图就是投影&#xff01; 依照惯例&#xff0c;雷老师上课前还是带领大家复习了上节课组合体的组合形式和物体分类的知识点&#xff0c;并且讲解了上次作业中需要注意的问题。比如对于涉及弧的问题&#xff0c;一些人没有投影线&#xff0c;一般点和特…

超好用的两款作图工具,用起来~~~

前言 作为程序员&#xff0c;项目开发过程中肯定会需要画一大堆图&#xff0c;原型图、流程图、UML图、思维导图、拓扑图等等&#xff0c;找到一个好工具肯定是能大大提高工作效率&#xff0c;这里就来分享两款我平时用得比较多的画图工具(这不是广告&#xff0c;也不是推广&a…

机械制图——常见的机件表达

文章目录 标准件与常用件1. 螺纹与螺纹紧固件螺纹旋合画法螺栓装配简化画法螺钉装配简化画法双头螺钉装配简化画法六角头螺栓连接画法双头螺柱连接画法开槽圆柱头螺钉连接画法开槽沉头螺钉连接画法 2. 键&#xff08;平键&#xff09;3. 销圆柱销圆锥销 4. 齿轮 零件图与装配图…

绘图小能手gunplot

下面的安装过程是在ubuntu20.04上进行的。 安装gnuplot需要依赖lua5.2。所以先安装lua5.2。 安装lua5.2 下载安装包 wget http://www.tecgraf.puc-rio.br/lua/ftp/lua-5.2.0.tar.gz编译安装lua5.2 解压后进入源码目录 make linux sudo make install安装gnuplot gnuplot主…

CAD机械制图入门知识

在计算机技术不断发展的过程中&#xff0c;CAD技术水平也得到了很大的提升&#xff0c;这使得CAD技术在机械制图当中的使用范围越来越大。CAD是常用的制图软件&#xff0c;具有很强的功能性&#xff0c;特别是在3D制图方面CAD有着较强的实用性。 对于大部分的人来说&#xff0c…

机械制图笔记

机械图纸上Φ50H7什么意思&#xff1f; 一般代表直径50的孔&#xff0c;H7的公差在这里是0.025mm/-0mm。 理论值M6的外径就是6毫米&#xff0c;实际上达不到&#xff0c;因为螺纹的尖顶都是圆角,通过查表m6的最大外径是5.92MM,这是基本数值。 机械制图中EQS&#xff0c;表示…

使用MapBox自定义地图

一、什么是MapBox&#xff0c;相对国内地图厂商的优势 MapBox是一家美国的地图厂商&#xff0c;2010 年成立于美国华盛顿&#xff0c;2017 年获得软银 1.64 亿美元 C 轮融资&#xff0c;完全开源的开发工具&#xff0c;帮助您在现有产品中实现灵活、轻量、稳定的地图、搜索、导…

企业网络设计,看这6个案例就够了

百度、美团的网络我们都可以称他们为企业网络。因为他们的网络本身是为自己提供服务&#xff0c;不提供网络的接入服务。 企业网主要包括三块内容&#xff1a;园区网、广域网和数据中心。按照网络用途来分&#xff0c;也可以分为办公网和生产网。 以上术语都是根据自己公司的…

雷军10周年演讲全文:没有任何成功是不冒风险的

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 2020年8月11日19:30&#xff0c;小米十周年&#xff0c;雷军公开演讲如约而至。在近3小时的演讲中&#xff0c;雷军用20个故事回顾了小米过去的热血10年&#xff0c;也展望了新的10年&#xff1a; 创新之火将会照亮每个疯…

一行代码值 200 万?雷军公开小米新 Logo 引吐槽

↓推荐关注↓ 今年是小米成立的第 10 年&#xff0c;从最初的 10 几个人创始团队&#xff0c;发展到如今的 3 万多员工。 为了迎接第十年&#xff0c;雷军透露在三年前&#xff08;2017年&#xff09;市场部同事曾建议他“升级品牌识别系统&#xff0c;先从 logo 开始。” 说干…

小米上市,雷军或成中国首富?作为科技粉也许你该关注的是这些

作者 | Leo 作为股票市场的老韭菜&#xff0c;这几天营长关注到的科技圈新闻有两个。 一个是 21 世纪经济报道的消息&#xff1a;证监会要对四大新兴行业独角兽 IPO “即报即审”&#xff0c;四个行业具体为生物科技、云计算、人工智能、高端制造。这意味着包括人工智能在内的四…

高端小米,雷军求“稳”

雷军21日在微博宣布&#xff0c;小米高端手机开始对标苹果&#xff0c;在产品品质和规格方面“向苹果学习”。 对此&#xff0c;有网友调侃&#xff1a; “对标苹果没有问题&#xff0c;但不要只对标价格。”苹果在高端手机市场中的成功&#xff0c;没有一家国产手机想要缺席。…

雷军,也卸任了……

兄弟们&#xff0c;大家中午好呀。 前几天咱们提到过&#xff0c;小米最近这段时间&#xff0c;有比较大的人事变动。 先是原来的小米集团总裁王翔在12月底退休&#xff0c;接任他的是前Redmi的负责人卢伟冰。 这才刚到1月份&#xff0c;新官上任的卢伟冰就又有新的职务了。 1月…

泪目!雷军突然卸任……

兄弟们&#xff0c;昨天下午小米的雷军&#xff0c;突然上热搜了。 这次不是因为小米又有什么新品&#xff0c;要宣传。 而是因为雷军突然卸任小米电子软件公司董事长一职。 来看看新闻的具体信息&#xff1a; 近日&#xff0c;北京小米电子软件技术有限公司发生工商变更。 雷军…

雷军:向小米手机1首批用户每人赠送1999元红包

本文转载自IT之家 IT之家 8 月 10 日消息 今日晚间&#xff0c;2021 雷军年度演讲召开。小米集团 CEO 雷军宣布向小米手机 1 首批用户每人赠送价值 1999 元的红包。 雷军表示&#xff1a;“十年前&#xff0c;小米 1 开售&#xff0c;1999 元&#xff0c;18.46 万台&#xff0…

【CSDN竞赛】题目讲解+对想打比赛的朋友的一些学习建议(ACM,蓝桥杯,PAT等)

目录 比赛反馈&#xff1a; 学习建议&#xff1a; 算法路线&#xff1a; 刷题平台&#xff1a; 比赛&#xff1a; 比赛题目讲解&#xff1a; 第一题&#xff1a; 第二题&#xff1a; 第三题&#xff1a; 第四题&#xff1a; 结尾&#xff1a; 今天也是…

计算机软件比赛团队名称,辩论赛 | 最佳人气团队评选

原标题&#xff1a;辩论赛 | 最佳人气团队评选 不得了啦~~~ 辩论赛最佳人气团队投票评选活动 火热进行中!!! 下面小编将会带你走近各个学院的战队 最佳人气团队花落谁家 有你们决定&#xff01; 快为你喜欢的战队投票吧~~ 不要 眨眼 建筑学院 队名&#xff1a;艾德曼 口号&…

ucl计算机学院位置,2017伦敦大学学院设施及地理位置介绍

原标题&#xff1a;2017伦敦大学学院设施及地理位置介绍 所属地区&#xff1a;英格兰 所在城市&#xff1a;London 授课类型&#xff1a;本科硕士博士博士后 学校排名&#xff1a;TIMES排名&#xff1a;5 卫报&#xff1a;5 金融时报&#xff1a;5 伦敦大学学院图书馆藏有超过一…

UCL葡萄酒(red white wine quality)数据集字段解释、数据导入实战

UCL葡萄酒&#xff08;red white wine quality&#xff09;数据集字段解释、数据导入实战 目录 UCL葡萄酒&#xff08;red white wine quality&#xff09;数据集字段解释、数据导入实战 #数据字段说明 #导入数据 #数据字段说明 葡萄酒分为白葡萄酒和红葡萄酒两类。 此处为…

强化学习入门笔记 | UCL silver RL | UC Berkely cs285 DRL

学习情况&#xff1a; &#x1f331; 先后听了两门课程&#xff0c;分别是David Silver的RL和Sergey Levin的DRL。各耗时一周左右&#xff0c;后者更难一些。对RL基本概念、常用算法原理及其伪代码有了大致了解。但是因为时间有点赶&#xff0c;没有敲完整的算法代码。 &…