ggplot2添加地理分界线的方法如下:
在作图过程中,有时我们可能需要通过添加一些线条,使得图形的可视化变得更好,比如一些趋势线等等。
下面我们来看下,一些线条的添加方式。
geom_abline(mapping = NULL, data = NULL, ..., slope, intercept, na.rm = FALSE, show.legend = NA)
geom_hline(mapping = NULL, data = NULL, ..., yintercept, na.rm = FALSE, show.legend = NA)
geom_vline(mapping = NULL, data = NULL, ..., xintercept, na.rm = FALSE, show.legend = NA)
三个函数的作用分别是,geom_abline添加斜线, geom_hline添加水平线,geom_vline添加垂直线
参数slope 表示斜率 intercept表示截距
参数yintercept 表示y轴截距或直线所在位置
参数xintercept 表示x轴截距或直线所在位置
给你一个示例的example;如何添加线性回归线以及线性回归方程:
libray(ggplot2)
df <- data.frame(x = c(1:100))
df$y <- 2 + 3 * df$x + rnorm(100, sd = 40)
p <- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = "lm", se=FALSE, color="black", formula = y ~ x) +
geom_point()
lm_eqn <- function(df){
m <- lm(y ~ x, df)
eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2,
list(a = format(coef(m)[1], digits = 2),
b = format(coef(m)[2], digits = 2),
r2 = format(summary(m)$r.squared, digits = 3)))
as.character(as.expression(eq))
}
效果大致是这样的:
"一张统计图形就是从数据到几何对象(geometric object, 缩写为geom, 包括点、线、条形等)的图形属性(aesthetic attributes, 缩写为aes, 包括颜色、形状、大小等)的一个映射。此外, 图形中还可能包含数据的统计变换(statistical transformation, 缩写为stats), 最后绘制在某个特定的坐标系(coordinate system, 缩写为coord)中, 而分面(facet, 指将绘图窗口划分为若干个子窗口)则可以用来生成数据中不同子集的图形。" 源自ggplot2的作者[Hadley Wickham]。
1.数据data和映射mapping
将数据中的变量映射到图形属性,映射控制了两者之间关系。
设置完成后使用 myeheme
9.存储和输出
在ggplot2中,有更简单的保存方法,ggsave()能更方便保存
选项包括保存哪副图形,保存在哪里,以什么形式保存。
即将myplot保存为名为mygraph.png的5英寸*4英寸PNG格式的图片
如果忽略plot=选项,最近创建的图形会被保存。
1.数据
在ggplot2中, 所接受的数据集必须为数据框(data.frame)格式
注1:2、3步可合并为
注2:改变横纵坐标名称
注3:geom_point()中参数的用法
4.将年份映射到颜色/形状/大小属性(按年份分组)
将分组变量(因子或字符变量,可通过factor()强制性将非因子变量转为因子变量)赋值给颜色或形状或大小属性(变量赋值必须在aes里面),实现分组散点图的绘制。
①颜色
5.增加平滑曲线
geom_smooth可以增加一条线,而stat_smooth是可以添加一个置信区间范围的(利用方差值)。
①stat_smooth
ggplot函数中赋予的值是全局性质的,如果不希望全局生效,放到后面+对应的图层中去。
如:
CASE1:stat_smooth对不同颜色的点,各自拟合曲线
CASE2:stat_smooth对所有点,拟合一条曲线
更改平滑曲线为一条红色虚线
其中linetype依次为1=实线,2=虚线,3=点,4=点破折号,5=长破折号,6=双破折号
6.自定义颜色/形状
scale_color_brewer()或者scale_color_manual()函数自定义点的颜色;scale_shape_manual()函数自定义点的形状;
下面我们将分组变量year同时赋值给颜色和形状属性。
①改变颜色
7.将连续型变量(排量)映射到颜色/大小属性
①大小
8.分面facet
分面设置在ggplot2应该也是要经常用到的一项画图内容,在数据对比以及分类显示上有着极为重要的作用。
facet_wrap和facet_grid不同在于facet_wrap是基于一个因子进行设置,facets表示形式为:~ 变量
而facet_grid是基于两个因子进行设置,facets表示形式为:变量 ~ 变量(行 ~ 列),如果把一个因子用点表示,也可以达到facet_wrap的效果,也可以用加号设置成两个以上变量
例如:变量+变量~变量 的形式,表示对三个变量设置分面。
①facet_wrap
下面对参数进行说明:
· nrow,ncol : 分面所设置成的行和列,参数为数值,表示几行或者几列
· scales : 参数fixed表示固定坐标轴刻度,free表示反馈坐标轴刻度,也可以单独设置成free_x或free_y(把scales 设置成free之后,可以看出每个分面都有自己的坐标刻度,当然我们也可以单独对x轴或y轴设置)
· shrink : 也和坐标轴刻度有关,如果为TRUE(默认值)则按统计后的数据调整刻度范围,否则按统计前的数据设定坐标
· drop : 表示是否去掉没有数据的分组,默认情况下不显示,逻辑值为FALSE
CASE1:
facet_wrap()是关键,facet与wrap两个词组合,就是逐面地包起来。里面我们选择按照year这个变量来分层,就可以将1999与2008分开。一定要注意!这里在year前面有个~,回归中的用法。而最后的ncol = 1代表着我们的小窗口是1列,指定了1列之后,默认就是两行(因为年份一共只有两种)。
colour = class。class也是数据集中的一个变量,代表不同种类的汽车,而因为汽车的种类非常多,所以颜色也就变的很多。
CASE2:
如果不加ncol=1,会默认横着排列
CASE3:
下面对参数进行说明:
· scales 、shrink、drop 同上
· as.table :和小图排列顺序有关的选项。如果为TRUE(默认)则按表格方式排列,即最大值(指分组level值)排在表格最后即右下角,否则排在左上角
· margins :通过TRUE或者FALSE表示否设置而一个总和的分面变量,默认情况为FALSE,即不设置
· space :表示分面空间是否可以按数据进行缩放,参数和scales一样
CASE1:
一行多列
CASE2:
一列多行
9.其他调整
①更改透明度alpha
当数据量非常大时,会导致数据重叠点非常严重,可通过使用半透明的点避免。alpha参数控制点的透明度。从0(完全透明)到1(不透明)。
CASE2:转换为极坐标系coord_polar()
CASE2:使用ggtitle,并居中hjust
hjust 其实就是左右移动的意思,0.5
CASE3:使用labs
等价形式
1.一般形式
2.内置的统计变换
geom_histogram()默认使用stat_bin(按照区间统计频数)这个统计变换, 而这个统计变换会生成(1)count:每个组里观测值的数目, (2)density:每个组里观测值的密度和(3)x:组的中心位置这三个变量
①调整分箱(bin),即直方图的宽度binwidth
3.调整每个年份对应一个直方图facet_wrap
CASE1:
CASE2:
注:这里的year如果改成factor(year),会报错
4.元素位置的调整
元素位置的调整共有5种包括了(1)dodge:并排方式(2)fill:堆叠图像元素, 并将高度标准化为1,(3)identity:不做任何调整(4)jitter:给点增加扰动避免重合和(5)stack:堆叠图像元素。
①fill=factor(year)
fill=factor(year)表示按年进行填充颜色。为什么不用前面说到的colour = ?这是ggplot绘图中,对于线与点这种面积为0的结构,它的颜色就直接使用colour =进行指定,而对条形和密度区域,例如条形图,柱状图,扇形图(特殊的柱状图),箱线图等等有面积的图形,其面积的颜色,我们需要用fill =来指定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)