我們一般用R語(yǔ)言畫出來(lái)的TSNE圖是這樣的,但是如果要發(fā)文章的話劝评,一般是需要再美化一下的姐直,這是一般的圖:
image.png
好了,話不多話蒋畜,今天來(lái)教大家如何進(jìn)行修改声畏。直接上代碼:
1.安裝程序包,讀取數(shù)據(jù)
package.list=c("ggplot2","pals","dplyr")
for (package in package.list) {
if (!require(package,character.only=T, quietly=T)) {
install.packages(package)
library(package, character.only=T)
}
}
data<-read.csv("data.csv")
2.自定義主題姻成,顏色,可以用pals::glasbey()里顏色插龄,也可以自己指定顏色
define_theme <- theme(
panel.background = element_blank(),
panel.border = element_blank(),
panel.grid = element_blank(),
axis.title = element_text(color='black', size=18),
axis.ticks.length = unit(0.4, "lines"),
axis.ticks = element_blank(),
axis.line = element_blank(),
axis.text = element_blank(),
legend.title = element_blank(),
legend.text = element_text(size=18),
legend.key = element_blank(),
legend.key.size = unit(1, 'cm')
)
define_color1 <- pals::glasbey()[1:26]
define_color2 <- c("#DC050C","#FB8072","#1965B0","#7BAFDE","#882E72",
"#B17BA6","#FF7F00","#FDB462","#E7298A","#E78AC3",
"#33A02C","#B2DF8A","#55A1B1","#8DD3C7","#A6761D",
"#E6AB02","#7570B3","#BEAED4","#666666","#999999",
"#aa8282","#d4b7b7","#8600bf","#ba5ce3","#808000",
"#aeae5c","#1e90ff","#00bfff","#56ff0d","#ffff00")[1:26]
3.設(shè)置標(biāo)簽坐標(biāo)位置
df_label <- summarise(group_by(data, cluster),
x_pos = mean(TSNE_1),
y_pos = mean(TSNE_2))
4.ggplot2開(kāi)始畫圖
p <- ggplot(data, aes(x = TSNE_1, y = TSNE_2)) +
geom_point(aes(color = cluster), alpha = .7) +
scale_color_manual(values = define_color2) +
geom_label(aes(x_pos, y_pos, label = cluster),
data = df_label,
label.r = unit(0.2, 'lines'),
alpha = .5,
size = 5) +
theme_bw() +
define_theme +
guides(colour = guide_legend(override.aes = list(size = 5))) +
geom_segment(aes(x = min(TSNE_1) - 10,
y = min(TSNE_2) - 10,
xend = min(TSNE_1) + 90,
yend = min(TSNE_2) - 10),
colour = "black",
size = 1,
arrow = arrow(length = unit(0.3,"cm"))) +
geom_segment(aes(x = min(TSNE_1) - 10,
y = min(TSNE_2) - 10,
xend = min(TSNE_1) - 10,
yend = min(TSNE_2) + 90),
colour = "black",
size = 1,
arrow = arrow(length = unit(0.3,"cm")))
ggsave(plot = p, filename = 'tsne.png', dpi = 300, width = 10, height = 8)
最終修改好的圖片效果如下:
image.png
**代碼中用到的案例數(shù)據(jù),可以到我的博客中下載佣渴,
http://81.69.237.191