[整理]统计数据的可视化——图表绘制(一)
类别数据可视化
条形图及其变种
简单条形图
> par(mfrow=c(1,3),mai=c(0.7,0.7,0.6,0.1),cex=0.7,cex.main=0.8) > barplot(count1,xlab = "频数",ylab = "社区",horiz = TRUE,main = "(a)水平条形图",col=2:5) > barplot(count2,xlab = "性别",ylab = "频数",main = "(b)垂直条形图") > barplot(count3,xlab = "态度",ylab = "频数",main = "(b)垂直条形图",col = 2:3)
par函数:图形控制的参数设置函数:
常用参数:
cex:控制文字和绘图符号的大小,cex=1表示正常大小
font.lab:控制坐标轴标签的字体
lyt:设置线条类型
lwd:设置线条宽度
mai:参数是一个数值向量c(底部,左侧,上侧,右侧),设置图形边距大小,单位是英寸
mfcol:参数是一个数值向量c(nr,nc),用于将绘图区域分割成相应的行数和列数
mfrow:同mfcol,只是按行填充各图
pch:设置绘图点或符号的类型
barplot函数:绘制条形图
常用参数:
col:设置图形颜色
las:只能是0,1,2,3中的某一直,用于表示刻度值的方向,0-平行于坐标轴;1-总是水平方向;2-总是垂直于坐标轴;3-总是垂直方向。
plot函数:绘制散点图
常用参数:
type:设置绘图类型,p-绘点,l-绘线,b-点和线
axes:axes=FALSE,暂时禁止坐标轴的生成以便使用axis()函数添加你自己定制的坐标轴。默认情况是axes=TRUE,即包含坐标轴。
axis函数:添加坐标轴
常用参数
side:1=below, 2=left, 3=above and 4=right.
mtext函数:在图形空白处输入文本
常用参数:line:在哪边线,从0开始计数adj:调整每个字符串的阅读方向,adj=0-左对齐或下对其;adj=1-右对齐或上对齐
帕累托图:按各类别的频数多少排序后绘制的条形图
> par(mfrow=c(1,1),mai=c(0.7,1,0.1,1),cex=0.8) > barplot(x,xlab = "社区",ylab = "频数",col = 2:4) > y<-cumsum(x)/sum(x) > par(new=T) #在当前图表中编辑 > plot(y,type="b",lwd=1.5,pch=15,axes=FALSE,xlab='',main='') #绘制散点图 > axis(4) #添加自定义坐标轴 > par(las=0) > mtext("累计频率",side=4,line=3) > mtext("累计分布曲线",line=-2.5,cex=0.8,adj=0.75)
复式条形图:包括并列条形图和堆叠条形图
> myinfo1<-table(myinfo$态度,myinfo$社区) #得到的数据态度为行,社区为列 > par(mfrow=c(1,2),cex=0.8) > barplot(myinfo1,xlab = "社区",ylab = "频数",ylim = c(0,8),col = c("green","blue"),legend = rownames(myinfo1),args.legend = list(x=8),beside=TRUE,main = "社区并列条形图") > barplot(myinfo1,xlab = "社区",ylab = "频数",ylim = c(0,8),col = c("green","blue"),legend = rownames(myinfo1),args.legend = list(x=4),main = "社区堆叠条形图")
barplot参数补充:
ylim:限制y轴的值
legend:添加图例
args.legend:将变量传递给legend,设置图例的位置
beside:默认值为FALSE,绘制堆叠条形图;beside=TRUE,绘制并列条形图。
脊形图:可以看做堆叠条形图的变种,将一个类别变量各类别条的高度都设为1,条的宽度与观测频数成正比,条内每一段的高度表示另一个类别变量各类别的比例。
> library(grid) > library(vcd) > addmargins(table(myinfo$态度,myinfo$社区)) 社区A 社区B 社区C Sum 反对 2 1 2 5 赞成 6 3 6 15 Sum 8 4 8 20 spine(态度~社区,data = myinfo,xlab = "社区",ylab = "态度",margins=c(4,3.5,1,2.5))
spine函数
margins:设置边距
马赛克图:用于两个以上的类别变量,其图中嵌套矩形的面积正比于单元格的频数。
mosaicplot(~态度+社区+性别,data=myinfo,color=4:5,main = "")
mosaicplot函数
~右侧为类别变量,多个类别变量之间用“+”连接
饼图及其变种
二维饼图
> count1<-table(myinfo$社区) > count1 社区A 社区B 社区C 8 4 8 > percent<-prop.table(count1)*100 > percent 社区A 社区B 社区C 40 20 40 > name<-names(count1) > name [1] "社区A" "社区B" "社区C" > lable1<-paste(name," ",percent,"%",sep="") > lable1 [1] "社区A 40%" "社区B 20%" "社区C 40%" #前期数据处理 > par(pin=c(3,3),mai=c(0.1,0.4,0.1,0.4),cex=0.8) > pie(count1,labels=lable1,init.angle = 90) #init.angle=90 从12点钟位置开始,逆时针方向绘制
par函数
常用参数补充:
pin:设置维度??我也没弄明白
pie函数
pie(x, labels = names(x), edges = 200, radius = 0.8,clockwise = FALSE, init.angle = if(clockwise) 90 else 0, density = NULL, angle = 45, col = NULL, border = NULL,lty = NULL, main = NULL, ...)
x 表示一个非负的数值向量,表示每个扇形的面积。labels代表各扇形面积标签的字符型向量。radius 表示饼图的圆的半径,特别是在字符标签过长的情况尤其适用。main 是用来表示图标的标题的。col 是表示每个扇形的颜色,相当于调色板。clockwise 是一个逻辑值,用来指示饼图各个切片是否按顺时针做出分割。density:底纹的密度。默认值为NULL。angle:设置底纹的斜率。edges设置多边形的边数(圆的轮廓是具有很多边的多边形近似)。
三维饼图
> library(plotrix) > pie3D(count1,labels=lable1,explode=0.1,labelcex=0.7,col = (4:6))
pie3D函数
explode:设置不同饼块之间的间隔
扇形图
fan.plot函数library(plotrix) fan.plot(count1,labels = lable1,ticks = 10,col=c("grey30","grey70","red")) #ticks可以为逻辑值也可为数值,用于表示扇形图上的刻度数
阅读更多
- Echarts助力大数据绘制可视化图表零基础入门-针对运维
- R的数据可视化,各种图表,常用统计量计算
- Python数据可视化:使用pyecharts和snapshot绘制精美图表
- 浅谈BI实时图表实现数据可视化的原理(转)
- canvas 绘制大乐透数据图表
- 数据可视化工作,安卓图表库的应用
- Unity可视化数据:创建图表
- 7057-2.Python数据分析:统计与图表生成
- ios、android 数据可视化图表赏析
- python数据可视化----绘制各种图形
- iOS 使用 Core Plot 绘制统计图表入门
- DataTable中数据记录的排序,检索,合并,分页,统计(整理)
- 如何快速使用ECharts绘制可视化图表
- Python数据可视化matplotlib(一)—— 图表的基本元素
- Highcharts使用CSV格式数据绘制图表
- 实现数据的图表统计
- iOS 使用 Core Plot 绘制统计图表入门
- R语言数据可视化---交互式图表recharts包
- 利用OFFICE 2003 OWC 绘图控件在.NET平台下实现数据图表的绘制
- 百度数据可视化图表套件echart实战