深夜求助R语言origin如何做箱式图图

苹果/安卓/wp
积分 8, 距离下一级还需 2 积分
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯下一级可获得
道具: 金钱卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
默认的legend位置都不能出边界啊, 3x
载入中......
可以的,可以把legend放到figure margins
使用XPD state setting
你自己搜一下XPD吧
本帖被以下文库推荐
& |主题: 828, 订阅: 13
好像是不能!
共享是一种彼此的快乐
可以的,可以把legend放到figure margins
使用XPD state setting
你自己搜一下XPD吧
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师R语言简单作图
基本作图:
plot(x)、plot(x, y) #散点图,最多两个变量
&&&&#可使用参数type生成不同的效果图。常用‘l’、‘o’、‘h’,分别为折线图,点线图,垂线图。
&&&&#’s'和’S'是折线图,前者是先水平后垂直,后者是先垂直后水平;’n'是不显示,用于画空白图
&&&&#若需对三个以上变量两两作图,可先合并在一个数据框,再对数据框使用plot
&&&&#例:r=data.frame(x,y,z);
boxplot(x)、boxplot(x,y,z,…) #箱式图,可使用多个参数将多个箱式图做在一起
coplot(x~y|z) #在z的每个值或每个区间上做x与y的散点图
pairs(x) #当x为矩阵时,做x各列之间的散点图
hist(x, freq)
#直方图。参数freq默认为TRUE,根据频数作图;若为FALSE,则据构成比(总和为1)作图。
barplot(table(x,y), beside=FALSE)
#对定性变量x、y做条图,默认堆积条图,使用beside=T则为并列条图。
qqnorm(x) #QQ图(正态分位数-分位数图)
qqplot(x,y) #y对x的分位数-分位数图
pie(table(x)) #对定性变量x做饼图
arrows #在两点之间画箭头线,箭头与线段之间的夹角可调
segments #在两点之间画线段
加参考线: #低级绘图参数,直接在原图上修改
lines(x)、lines(x, y) #添加折线
abline(lm(y~x)) #添加y对x的回归直线
abline(a,b) #a为截距,b为斜率
abline(v=) #添加垂直线
abline(h=) #添加水平线
points(x,y) #低级绘图参数,直接在原图上修改
1、curve(expr, from=0, to=1, n=101, add=FALSE)
&&&&例:curve(qnorm);
curve(log); curve(x^2) #第一个参数可以是函数,也可以是含x的表达式。
&&&&例:curve(x^2,
0, 100); #from和to规定表达式或函数的自变量范围,默认0~1。
&&&&n:为自变量范围内取多少个点进行描图,n越大,曲线越平滑
&&&&add:当取值为TURE时,该曲线添加于前一图上。当两图的自变量取值范围不重合时,无法叠加。
2、plot(fun, from=0, to=1)
&&&&用法和curve相似,但第一个参数不能使用含x的表达式。
&&&&注意在plot中尽量避免使用add参数。
使用参数pch设定点的样式
1、数字0~20,表示21种不同的符号
&&&&curve(x/20,0,21,lty=0);
for (i in 0:20) {points(i,0.5,pch=i);}
2、8个字符,表示8种点的样式
&&&&curve(x/7,0,7,lty=0);
chr=c(‘*’,’.’,'o’,'O’,’0&,’+',’-',’|');
(i in 0:7) {points(i,0.5,pch=chr[i+1])}
3、数字21~25,表示可以填充背景色的五种符号,需和参数bg联用
&&&&curve(x/4,0,4,lty=0);
for (i in 0:4) {points(i,0.5,pch=21+i,bg=sample(colors(),1))}
使用参数col设定颜色
&&&&例:plot(dnorm,
col=’red’)
&&&&使用sort(colors())可以查看所有已命名的颜色
使用参数lty设定线型
1、简单取值可以使用0~6
&&&&curve(x*8,0,1,lty=0);
for (i in 1:16) {abline(h=i/2,lty=i);}
&&&&#0表示空白,随取值增大,6种线型循环出现
2、使用十六进制数字组成的字符串
&&&&长度只能是偶数位,最长8位;奇数位为表示实线长度,偶数位表示空白长度
&&&&注意:需要引号;不能有0。
&&&&curve(x^2,0,1,lty=’32&;)
#3单位实线和2单位空白循环
&&&&curve(x^2,0,1,lty=’32AA’;)
#3单位实线、2单位空白、10单位实线、10单位空白循环
使用参数bty设定边框
&&&&bty=’o’
#默认显示四条边框
&&&&bty=’l’
#不显示右上两条边框,例:curve(x^2,0,1,bty=’l')
&&&&bty=’n’
#不显示边框
使用参数xlab和ylab修改坐标轴的意义
&&&&curve(x*5,0,1,xlab=”,ylab=”,lty=0)
#不显示坐标轴的符号
1、图例在作图区域内
&&&&&legend(x,y,legend,pch,col,lty,ncol=1,bty=’o')
&&&&&&&&&&#x,y为图例左上角的坐标,也可以使用以下字符来标记特殊位置:”bottomright”,
“bottom”, “bottomleft”, “left”, “topleft”, “top”, “topright”,
“right” and “center”
&&&&&&&&&&#legend是图例的文字,一般是一个字符向量
&&&&&&&&&&#pch,col,lty是图中所用的样式
&&&&&&&&&&#ncol是图例的列数,bty指明图例的边框显示
&&&&curve(x*8,0,1,lty=0);
for (i in 1:6) {abline(h=i/2,lty=i);}
&&&&legend(0,8,legend=letters[c(1:6)],lty=1:6,bty=’n');
2、图例在作图区域外
&&&&需使用par修改参数mar和pty。同时还需要修改参数xpd。
&&&&默认mar=c(5,4,4,2)+0.1,即图形下左上右四个边界的宽度分别为5.1,4.1,4.1,2.1厘米。
&&&&默认pty=’m',即最大化作图区域,取值为’s'则限制作图区域为方形。
&&&&默认xpd=FALSE,即不允许在作图区域外作图,改为TRUE即可。
&&&&op=par();
#保存par的原值
&&&&par(mar=c(5,4,4,5),pty=’s');
#准备在图形右边添加图例
&&&&curve(x*8,0,1,lty=0);
for (i in 1:16) {abline(h=i/2,lty=i);}
&&&&legend(1.02,4,legend=letters[c(1:6)],lty=1:6,bty=’n',xpd=T);
&&&&par(op);
#恢复par的原值
曲线拟合:(线性回归方法:lm)
2、求线性回归方程并赋予一个新变量
&&&&z=lm(y~x+I(x^2)+…)
3、plot(x,y) #做y对x的散点图
4、lines(x,fitted(z)) #添加拟合值对x的散点图并连线
曲线拟合:(nls)
lm是将曲线直线化再做回归,nls是直接拟合曲线。
需要三个条件:曲线方程、数据位置、系数的估计值。
如果曲线方程比较复杂,可以先命名一个自定义函数。
&&&&f=function(x1,
x2, a, b) {a+x1+x2^b};
&&&&result=nls(x$y~f(x$x1,
x$x2, a, b), data=x, start=list(a=1, b=2));
&&&&&&&&#x可以是数据框或列表,但不能是矩阵
&&&&&&&&#对系数的估计要尽量接近真实值,如果相差太远会报错:“奇异梯度”
&&&&summary(result);
#结果包含对系数的估计和p值
根据估计的系数直接在散点图上使用lines加曲线即可。
曲线拟合:(局部回归)
lowess(x, y=NULL, f = 2/3, iter = 3)
&&&&#可以只包含x,也可使用x、y两个变量
&&&&#f为窗宽参数,越大越平滑
&&&&#iter为迭代次数,越大计算越慢
loess(y~x, data, span=0.75, degree=2)
&&&&#data为包含x、y的数据集;span为窗宽参数
&&&&#degree默认为二次回归
&&&&#该方法计算1000个数据点约占10M内存
x=seq(0, 10, 0.1); y=sin(x)+rnorm(101) #x的值必须排序
plot(x,y); #做散点图
lines(lowess(x,y)); #利用lowess做回归曲线
lines(x,predict(loess(y~x))); #利用loess做回归曲线,predict是取回归预测值
z=loess(y~x); lines(x, z$fit); #利用loess做回归曲线的另一种做法
核密度估计曲线
1、hist(x, freq=FALSE) #根据构成比做直方图
2、核密度估计
density(x,
&&&&bw=’nrd0&,
#设置窗宽,默认为‘nrd0’(只是为了兼容,并不是推荐数值),可尝试不同数字选择最合适的。
&&&&kernel
= c(“gaussian”, “epanechnikov”, “rectangular”, “triangular”,
“biweight”, “cosine”, “optcosine”),
&&&&#选择列表中的一种计算方法,默认为第一种。方法名称可使用首字母代替。
&&&&weights)
#给不同的x值赋予权重,长度和x相同。默认权重相同。
例:a=density(x,bw=0.5, kernel=’c');
3、lines(a) #添加核密度曲线
已投稿到:苹果/安卓/wp
积分 666, 距离下一级还需 134 积分
权限: 自定义头衔, 签名中使用图片
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡, 匿名卡, 抢沙发下一级可获得
权限: 隐身
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
开心签到天数: 30 天连续签到: 1 天[LV.5]常住居民I
本帖最后由 coral90 于
22:34 编辑
如何用R做这样的图
载入中......
(34.88 KB)
21:00:34 上传
(34.88 KB)
22:34:41 上传
如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!
试试ggplot2包
这里有很多例子
热心帮助其他会员
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
重发一个图吧!
kk22boy 发表于
图挂了重传了&&不知道看到没~
kiddbai 发表于
重发一个图吧!不知道看到没 重发过了
qoiqpwqr 发表于
试试ggplot2包
这里有很多例子
http://had.co.nz/ggplot2/geom_histogram.html简直就是我想要的&&膜拜大牛啊有木有!!!
本帖最后由 bensonwu 于
07:52 编辑
太简单了!直接用 barplot() 命令就行了,不用加载任何其它包。
##&&输入日上海微博达人数据&&##
dr &- matrix(data = NA, nrow = 6, ncol = 2)
dr[1:6] &- c(222,0,59,39)
dr[1:6,2] &- c(730,4,31,44)
colnames(dr) &-&&c(&男&,&女&)
rownames(dr) &- c(&18岁以下&,&18~24&,&25~30&,&31~40&,&41~50&,&50岁以上&)
##&&绘图&&##
par(mfrow = c(3,1))
x &- barplot(t(dr),legend=rownames(t(dr)),main=paste(&日上海微博达人统计共&,sum(dr),&人&))
y &- dr[,1]+dr[,2]
text(x,y+mean(dr)*0.2,labels=as.character(y))
pielabels &- sprintf(&%s = %3.1f%s&, rownames(dr),
100*(dr[,1]+dr[,2])/sum(dr), &%&)
pie(dr[,1]+dr[,2],labels=pielabels,main=c(&日上海微博达人各年龄段所占比例&))
f &- barplot(t(dr[,1]/dr[,2]),main=c(&日上海微博达人各年龄段男女比例&))
s &- t(dr[,1]/dr[,2])
text(f,s+mean(s)*0.1,labels=format(s,digits = 3))
07:52:28 上传
观点有启发
总评分:&学术水平 + 5&
热心指数 + 5&
bensonwu 发表于
太简单了!直接用 barplot() 命令就行了,不用加载任何其它包。
例子:嗯 学会了 谢谢!!
初级热心勋章
初级热心勋章
初级信用勋章
初级信用勋章
初级学术勋章
初级学术勋章
中级热心勋章
中级热心勋章
高级热心勋章
高级热心勋章
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师2268人阅读
函数名称:plot
用 & & & 途:作图
用 & & & 法:plot(x, y, ……)
参 & & & 数:
1、符号和线条
& & pch:指定绘制点所使用的符号,取值范围[0, 24],其中4是“差号”,20是“点”
& & cex:指定符号的大小。cex是一个数值,表示pch的倍数,默认是1.5倍
& & lty:指定线条类型。lty=1代表实线,2至6都是虚线,虚的程度不一样
& & lwd:指定线条宽度,默认值为lwd=1,可以适当修改1.5倍、2倍等
& & col:默认绘图颜色。某些函数(如lines、pie)可以接受一个含有颜色值的向量,并自动循环使用。
& & & & & &例如:col=c(&red&, &blue&)需要绘制三条线,那么三条颜色分别为red、blue、red
& & col.axis:坐标轴刻度文字的颜色,不是坐标轴的颜色
& & col.lab:坐标轴标签(名称)的颜色
& & col.main:标题的颜色
& & col.sub:副标题的颜色
& & fg:图形的前景色
& & bg:图形的背景色
3、文本属性(用来指定字号、字体、字样)
& & cex.axis:坐标轴刻度文字的缩放倍数
& & cex.lab:坐标轴标签(名称)的缩放倍数
& & cex.main:标题的缩放倍数
& & cex.sub:副标题的缩放倍数
& & font:整数。用于指定字体样式。1常规、2粗体、3斜体、4粗斜体
4、图形尺寸与图形边界
& & pin:以英寸表示图形的宽和高
& & mai:以数值向量表示边界大小,顺序为&下、左、上、右&,单位为英寸
& & mar:以数值向量表示边界大小,顺序为&下、左、上、右&,单位为英分,默认值c(5, 4, 4, 2)+0.1
& & 可以使用函数title,格式为:
& & & & title(main = & &, sub = & &, xlab = & &, &ylab = & &)
& &也可以直接把title里面的参数直接放在plot()里面
& & &axes=FALSE &将禁用全部坐标轴,框架和刻度全部没有了
& & &xaxt=&n& & 禁用x轴的刻度线
& & &yaxt=&n& & 禁用y轴的刻度线
&&&& xlim&&&&&&&&&&x坐标轴的范围,只写出最小值和最大值
&&&& ylim&&&&&&&&& y坐标轴的范围,只写出最小值和最大值
例如:plot(1:10, xlim = c(-10, 10), ylim = c(0, 10))& xlim和ylim只是坐标轴的范围,与每个点的x和y坐标没有关系
也可以通过axis函数自定义axis(……) & &
& & &side:一个整数。表示在图形的哪边绘制坐标轴(1=下,2=左,3=上,4=右)
& & &at:一个数值向量,表示需要绘制刻度线的位置
& & &labels:一个字符型向量(也可以是数值型),表示刻度线旁边的文字标签(刻度值),如果整个不写,则直接使用at的值
& & &col:线条和刻度的颜色
& & &lty:线条类型
& & &las:标签的字体是否平行(=0)或者垂直(=2)坐标轴
& & &tck:刻度线的长度(默认&#2,负值表示刻度在图形外,正值表示刻度在图形内侧)
& & &abline(h=yvalues, v=xvalues)
例如:plot(1:10)
& & & & & abline(h = c(1, 5)) &#则在y=1和5处各有一条水平线
& & & & &&abline(v = c(1, 5)) &#则在x=1和5处各有一条垂直线
8、图例(legend)
& & & legend(location, title, legend, ……)
& & & 待续…… & &&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:159978次
积分:2699
积分:2699
排名:第12882名
原创:133篇
转载:21篇
评论:13条
(1)(2)(1)(2)(1)(4)(1)(2)(20)(2)(8)(2)(14)(15)(9)(21)(16)(9)(11)(3)(16)

我要回帖

更多关于 如何做箱式图 的文章

 

随机推荐