简介
在这篇文章中,我们将通过使用ggplot2包在R中绘制线图的教程。ggplot2是一个常用的开源R包,用于创建漂亮的可视化。我们将首先解释geom_line()几何对象的语法,该对象用于在ggplot2中生成线状图。然后,我们将介绍用这个库创建线图的各种例子。
ggplot2中线型图的语法
在ggplot2中生成线段图的最小语法是
ggplot(, mapping = aes() + geom_line()
然而,为了更好的可视化和美观,更常见的做法是将散点图的点与线图一起添加,如下所示
ggplot(, mapping = aes() + geom_line() + geom_point()
ggplot2可以让你在图中添加更多的层,如主题、实验室等,以创建更高级的散点图。
- 还可以阅读 - 使用ggplot2在R中学习散点图的例子
在R中使用ggplot2绘制直线图的例子
加载ggplot2库
我们首先加载ggplot2库,如下所示。
In[0]:
library(ggplot2)
加载数据集
我们将使用汽车数据集来绘制所有的线图实例。数据集被加载到数据框中,其样本行被显示出来。
In[1]:
df <- read.table("Cars.csv",header=TRUE,sep=',')
options( warn = -1 )
head(df)
Out[1]:
| 名称 | 年份 | 销售价格 | 行驶公里数 | 燃料 | 卖家类型 | 传动装置 | 车主 |
|---|---|---|---|---|---|---|---|
| Maruti 800 AC | 2007 | 60000 | 70000 | 汽油 | 个人 | 手动 | 第一任车主 |
| Maruti Wagon R LXI Minor | 2007 | 135000 | 50000 | 汽油 | 个人 | 手动 | 第一任车主 |
| 现代Verna 1.6 SX | 2012 | 600000 | 100000 | 柴油机 | 个人 | 手动 | 第一任车主 |
| 达特桑RediGO T选项 | 2017 | 250000 | 46000 | 汽油 | 个人 | 手动 | 第一任车主 |
| 本田Amaze VX i-DTEC | 2014 | 450000 | 141000 | 柴油机 | 个人 | 手动 | 第二位车主 |
| Maruti Alto LX BSIII | 2007 | 140000 | 125000 | 汽油 | 个人 | 手动 | 第一车主 |
例1:ggplot2的基本线图
让我们用geom_line()为 "年份 "与 "售价 "的数据集的前10条记录绘制基本的ggplot2线图。
In[2]:
# Basic line plot with points
ggplot(data=head(df, n=20), aes(x=year, y=selling_price)) +
geom_line()+
geom_point()
Out[2]:

例2:改变线型
线形图的类型可以通过传递linetype参数来改变,该参数有几个选项,如虚线、两条破折线、虚线等等。
在下面两个例子中,我们在lineetype参数中使用了'dashes'和'twodashes'。
In[3]:
# Change the line type
ggplot(data=head(df, n=10), aes(x=year, y=selling_price)) +
geom_line(linetype = "dashed")+
geom_point()
Out[3]:

在[4]中:
ggplot(data=head(df, n=200), aes(x=year, y=selling_price)) +
geom_line(linetype = "twodash")+
geom_point()
Out[4]:

例三:改变线条的颜色
让我们使用geom_line( )的颜色参数来改变线条的颜色。在下面的例子中,我们使用了红色。
在[5]中:
# Change the color
ggplot(data=head(df, n=10), aes(x=year, y=selling_price, group=1)) +
geom_line(color="red")+
geom_point()
Out[5]:

例四:在ggplot2中改变线图的大小
线条的大小可以用命令size来定制,并在geom_line( )中传递size的值。
In[6]:
# Format the line size
ggplot(data=head(df, n=10), aes(x=Country, y=Urban.Pop, group=1)) +
geom_line(color="green",size=1.5)+
geom_point()
输出[6]:

例5:为线段图添加标题
ggtitle()可以用来添加绘图标题,labs()可以用来添加坐标轴标题。
在[7]中:
line<-ggplot(data=head(df, n=10), aes(x=Country, y=Urban.Pop, group=1)) +
geom_line(color="blue",size=1.1)+
geom_point() +
ggtitle("Kilometres vs Car Price")+
labs(x="KM",y="Price")
Out[7]:

例6:给线段图添加箭头
为了给我们的线图添加一个箭头,我们使用箭头参数并将箭头()传递给它。
我们也可以在一个类似箭头的角度中改变参数,类型结束在箭头对象中,如下面第二个例子所示。
In[8]:
# Adding an arrow
ggplot(data=head(df, n=10), aes(x=Country, y=Land.Area, group=1)) +
geom_line(arrow=arrow(),size=1.1,color='red')+
geom_point()
Out[8]:

在[9]中:
# Adding closed arrow on both ends of the line
arr=arrow(angle = 20, ends = "both", type = "closed")
ggplot(data=head(df, n=10), aes(x=Country, y=Land.Area, group=1)) +
geom_line(arrow=arr,size=1.1,color='red')+
geom_point()
Out[9]:

例七:多线图
要在一个图形中绘制多个线段图,我们不需要做太多的改动,只需要将组属性设置为基于不同线段的列的名称就可以了
In[10]:
# Color selection
cols <- c("#D43F3A", "#EEA236")
ggplot(df, aes(x =year, y =selling_price , color =transmission)) +
geom_line(size=3) +
scale_color_manual(values = cols) + theme_dark()
Out[10]:

例8:图例定制
我们可以使用 guide_legend() 函数来改变线段图例的标题,如下所示。
在[11]中:
ggplot(df, aes(x =year,y=selling_price , color =transmission)) +
geom_line(size=2.5) +
guides(color = guide_legend(title = "The Title"))
Out[11]:

这里我们改变图例标签。
In [12]:
ggplot(df, aes(x =year,y=selling_price , color =transmission)) +
geom_line(size=2.5) +
scale_color_discrete(labels = paste("Transmission Type", 1:2))
Out[12]:

例九:基于条件创建折线图
我们可以根据行驶里程小于10万公里的汽车的销售价格这一条件来创建数据集的折线图。
在[13]中:
ss <- subset(head(df,n=30), km_driven<100000)
ggplot(data = ss, aes(x=km_driven, y=selling_price)) + geom_line(size=2.5, color='red')
Out[13]:

例10:在折线图中添加数据标签
现在让我们添加一些数据标签,这里我们用标签来获取y轴上的数值,用nudge_y来放置数据标签。
In[14]:
ggplot(data=head(df,n=8), aes(x=year, y=selling_price, group=1,label=selling_price)) +
geom_line(color='blue',size=2.5)+
geom_point()+
geom_text(nudge_y = 3, size=6)
Out[14]:

参考 -ggplot2文档