打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【已解决】barplot绘图:如何调整y轴类别标签的距离
userphoto

2022.12.22 四川

关注
  • 2016年9月23日
  • 已编辑

先请运行一下下面这段代码,我的问题是如何调整y轴类别标签的距离,不想用ggplot2

library(ISLR) 
data(NCI60) # NCI 60 Data
library(RColorBrewer)
dat <- as.data.frame(table(NCI60$labs))
order_dat <- dat[order(dat$Freq,decreasing = TRUE),]
num <- order_dat[,2]
names(num) <- order_dat[,1]
op <- par(mar=c(4,8,2,1))
barplot(num, col = brewer.pal(12,"Set3"), axes = FALSE, border=NA, axisnames=FALSE,
        horiz=TRUE,xlab="numbers",ylab="",legend.text = TRUE)		
xlabs <- seq(0, 9, by = 1)
ylabs <- order_dat[,1]		
axis(1, labels = xlabs, at = xlabs, las = 1) # x-axis
axis(2, labels = ylabs, at = seq(14), las = 1,lwd =1) # y-axis
par(op)

出图如下:

data(NCI60,package ="ISLR") # 加载数据
dat <- as.data.frame(table(NCI60$labs))
order_dat <- dat[order(dat$Freq,decreasing = TRUE),]
num <- order_dat[,2]
names(num) <- order_dat[,1]
op <- par(mar=c(2,1,1,1))
plot(c(0,10),c(0,17),type="n",axes = FALSE,ann=FALSE)
xlabs <- seq(0,10,by=1)
axis(1, labels = xlabs, at = xlabs, las = 1) # x-axis
mycolors <- yarrr::piratepal(palette = "info2") 
barplot(num,add=TRUE,col=mycolors,axes = FALSE,
axisnames=FALSE,border ="white",
args.legend=list(border = "white",box.col="white"),
horiz=TRUE,xlab="numbers",ylab="",legend.text = TRUE)
box(col = "gray")
par(op)

想了想,这图有搞得人眼花缭乱之嫌,
曾几何时我也不是ggplot2党,还有一点强迫症,这下满意了

data(NCI60,package ="ISLR") # 加载数据
dat <- as.data.frame(table(NCI60$labs))
order_dat <- dat[order(dat$Freq,decreasing = TRUE),]
num <- order_dat[,2]
names(num) <- order_dat[,1]
op <- par(mar=c(2,7,1,1))
plot(c(0,10),c(0,17),type="n",axes = FALSE,ann=FALSE)
xlabs <- seq(0,10,by=1) # 下面一行是关键
ylabs <- seq(0.7,length(num)+2.3,length.out=length(num))
ylabs_names <- names(num)
axis(1, labels = xlabs, at = xlabs, las = 1,col = "gray") # xaxis
axis(2, labels = ylabs_names, at = ylabs, las = 1,col="white")
barplot(num,add=TRUE,col="lightblue",axes = FALSE,
		axisnames=FALSE,border ="white",
		horiz=TRUE,xlab="numbers",ylab="")

  • 2017年8月1日

yihui 的赞,让我觉得代码中0.7和2.3等试出来(瞎蒙的)的数字,情何以堪。遂决定把这个问题磕到底,代码也清净了

data(NCI60,package ="ISLR") # 加载数据		
myData <- sort(table(NCI60$labs))		
par(mar=c(5,2.5,1,1))	
barCenters <- barplot(myData,col = "lightblue",axes = FALSE,
			axisnames=FALSE,border ="white")				
text(x = barCenters, y = par("usr")[3]-.2, srt = 45,
     adj = 1, labels = names(myData), xpd = TRUE)
axis(2, labels = seq(0,9,by=1), at = seq(0,9,by=1),  las = 1 , col = "gray") 

请看正图

  • 2017年8月1日

再横着来

data(NCI60,package ="ISLR") # 加载数据		
myData <- sort(table(NCI60$labs), decreasing = TRUE)		
par(mar=c(2,7,1,1))	
barCenters <- barplot(myData,col = "lightblue",axes = FALSE,
			axisnames=FALSE,horiz=TRUE,border ="white")				
text(y = barCenters, x = par("usr")[3],
     adj = 1, labels = names(myData), xpd = TRUE)
axis(1, labels = seq(0,9,by=1), at = seq(0,9,by=1),  las = 1 , col = "gray") 

看图

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
R语言条形图的制作
The Pirate Plot (2.0) – The RDI plotting choice of R pirates
R语言 条形图
R语言绘图基础
30 天学会R DAY 17:R语言绘图入门
r语言聚类分析:k-means和层次聚类
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服