# R语言基础绘图教程——第4章：面积图和饼图

## ggplot2绘制面积图

ggplot2绘制面积图的代码格式：

`ggplot(sunspotyear, aes(x,y))+ geom_area()`

```#draw simple area plot
ggplot(sunspotyear, aes(Year,Sunspots))+
geom_area()```

```#change fill colour and alpha
ggplot(sunspotyear, aes(Year,Sunspots))+
geom_area(colour="black", fill="blue", alpha=.2)```

```#delete the black line under the area plot
ggplot(sunspotyear, aes(Year,Sunspots))+
geom_area(fill="blue", alpha=.2) +
geom_line()```

```library(ggplot2)

levels(data\$AgeGroup)
#relevel the factor
data\$AgeGroup = factor(as.character(data\$AgeGroup), levels = c("<5", "5-14", "15-24", "25-34", "35-44", "45-54", "55-64", ">64"))

#draw area plot, amazing things will happen.
ggplot(data, aes(Year, Thousands, fill=AgeGroup)) +
geom_area()```

```#change another colorpanel and reorder the agegroup
ggplot(data, aes(Year, Thousands, fill=AgeGroup)) +
geom_area(color="black", size=0.2, alpha=0.4) +
scale_fill_brewer(palette="Blues", breaks=rev(levels(data\$AgeGroup)))```

## 绘制饼图

pie()函数绘制饼图

```#read in data
data

#draw pie chart using function "pie"
pie(data\$Value, labels=data\$Group)
pie(data\$Value, labels=data\$Group, radius=0.8, clockwise=T, init.angle=90, density=20)
pie(data\$Value, labels=data\$Group, radius=0.8, clockwise=T, init.angle=90, density=20, col=rainbow(8))
pie(data\$Value, labels=data\$Group, radius=0.8, clockwise=T, init.angle=90, density=20, col=rainbow(8), border="black")
pie(data\$Value, labels=data\$Group, radius=0.8, clockwise=T, init.angle=90, density=NULL, col=rainbow(8), border="black", lty=2)
pie(data\$Value, labels=data\$Group, radius=0.8, clockwise=T, init.angle=90, density=NULL, col=rainbow(8), border="black", lty=2, main="My First Pie Chart using R")```

```#用优化的参数绘制完美的par图
par(mar=c(0,6,6,6))
pie(data\$Value,
labels=paste(data\$Group,"(",substring(data\$Value,0,4), ")"),
clockwise=T,
init.angle=9,
density=NULL,
col=rainbow(8),
border="black",
lty=2,
main="Fig1. XXX Value of different conditions"
)```

```#draw a round rainbow
par(mar=c(0,0,0,0))
pie(rep(1,10), col=rainbow(10), lty=0, labels='', init.angle=90, border=NA)
#what will happen if set the number of the values to a big one, try 200 or even bigger one 2000
#Let's see the charm of R language
par(mar=c(0,0,0,0))
pie(rep(1,2000), col=rainbow(2000), lty=0, labels='', init.angle=90, border=NA)
```

```#read in data
data

library(plotrix)
labels=paste(data\$Group,substring(data\$Value,0,4), sep="\n"),
explode=0.1, main="Fig1. XXX value of different conditions",

pie3D函数并没有设置顺或逆时针的参数，下面是解决方案。

```#think of this, the pie3D function in package plotrix does NOT have the parameter "clockwise" like the function "pie"
#what should we do if we want to reverse the order of the pie chart? Think about that.
data.rev = data[nrow(data):1,]
labels=paste(data.rev\$Group,substring(data.rev\$Value,0,4), sep="\n"),
explode=0.1, main="Fig1. XXX value of different conditions",

0 条评论

• ### R绘图笔记 | 一般的散点图绘制

plot函数中，x和y分别表示所绘图形的横坐标和纵坐标；函数中的...为附加的参数。plot函数默认的使用格式如下：

• ### R绘图笔记 | 散点分布图与柱形分布图

https://docs.qq.com/sheet/DV0dxREV1YkJ0ZmVj

• ### React第三方组件6(状态管理之Mobx的使用④TodoList下)

本教程总共5篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React第三方组件6(状态管理之Mobx的使用①简单...

• ### BootstrapTable的列排序怎么搞

先搞一个table，使用ajax将数据查询出来，然后可以在所有列都加上排序。满足自己的需求。

• ### 上映4天，票房7.4亿的《海王》，用Python分析数据看大片！

《海王》一部电影带你重温《驯龙高手》《变形金刚》《星球大战》《星河战队》《铁血战士》《安德的游戏》《异形》可能还借鉴了对手的《钢铁侠》与《黑豹》剧情，再稍稍带一...

• ### 【go】剑指offer：常见排序算法

冒泡排序是比较简单的排序算法，它的关键思想是移动指针不断的进行两两比较，将最大的数字不断的进行更换位置，直至到最后，即完成一趟比较，都会寻找到最大的数字，且最大...

• ### go实现利用最大堆寻找最小k个数

昨天分享了寻找最小k个数的算法是，那么有没有更为迅速的方法呢？今天就来分享关于如何使用最大堆进行解决。