目录
包和数据
作图代码及详解
包和数据
rm(list = ls())
library(ggpubr)
library(scales)
library(ggplot2)data <- iris##鸢尾花数据集
data1 <- data[1:30,c(1,2,3)]
> head(data1)Sepal.Length Sepal.Width Petal.Length 1 5.1 3.5 1.4 2 4.9 3.0 1.4 3 4.7 3.2 1.3 4 4.6 3.1 1.5 5 5.0 3.6 1.4 6 5.4 3.9 1.7
作图代码及详解
#计算相关性
correlation <- cor(data1$Sepal.Length, y=data1$Sepal.Width)#计算相关性值#pdf("plot1.pdf",width = 8,height = 6)##保存图片
P1 <- ggplot(data1, aes(x = Petal.Length)) +#绘制左侧Y轴数据的折线geom_line(aes(y = Sepal.Length, color = "Sepal.Length"), size = 1) + #color参数为了显示图例#绘制左侧Y轴数据的散点geom_point(aes(y = Sepal.Length, color = "Sepal.Length", shape = "Sepal.Length"), size = 4) +#绘制右侧(次级)Y轴数据的散点geom_line(aes(y = Sepal.Width, color = "Sepal.Width"), size = 1) +geom_point(aes(y = Sepal.Width, color = "Sepal.Width", shape = "Sepal.Width"), size = 4) +#数据的颜色设置scale_color_manual(name = "观测指标",values = c("Sepal.Length" = "#c3272b", "Sepal.Width" = "#E8BF80"),labels = c("Sepal.Length" = "Sepal Length", "Sepal.Width" = "Sepal Width")) +#数据的形状设置(15正方形,16为圆形,17为三角形)scale_shape_manual(name = "观测指标",values = c("Sepal.Length" = 17, "Sepal.Width" = 16),labels = c("Sepal.Length" = "Sepal Length", "Sepal.Width" = "Sepal Width")) +#右侧Y轴数据和名称(设置次级坐标内容)在第一个Y轴基础上建立第二个Y轴#sec.axis函数设置时需要依据Y1范围进行相应设置scale_y_continuous(name = "Sepal.Length",sec.axis = sec_axis(~.*1, name = 'Sepal.Width') #~.*1 表示与左侧Y轴(Y1)的关系) +##labs(x = "Petal.Length", y = "Sepal.Length") +theme_classic(base_line_size = 1, base_rect_size = 1) +theme(panel.grid.major = element_blank(), #隐藏背景网格线panel.grid.minor = element_blank(),#坐标轴刻度axis.text = element_text(colour = '#000000', size = 13),#标题文本设置plot.title = element_text(size = 15, face = "bold", hjust = 0.5, vjust = 1, color = "#000000"),# 调整X轴标题的大小和颜色axis.title.x = element_text(size = 14, color = "#801dae"),# 调整Y轴标题的大小和颜色axis.title.y = element_text(size = 14, color = "#c3272b"),# 调整次级Y轴标题的大小和颜色axis.title.y.right = element_text(size = 14, color = "#E8BF80"),#图例调整legend.key.height = unit(10, "pt"),legend.key.width = unit(10, "pt"),legend.position=c(0.8, 1)) +#添加的相关性系数注释annotate("text", x = 1.1, y = 6, size = 5,label = paste("相关系数: ", round(correlation, 2)), color = "#c3272b") +#添加标题ggtitle("AAABBB")+#添加annotate 水印 alpha = 0.3 透明度设置annotate("text", x = 1.5, y = 4, label = "这是第二个注释", alpha = 0.3,size = 10, color = "#a1afc9", fontface = "bold", angle = 45)P1
dev.off()