求教:gcc编译程序属于什么软件完的程序,运行时候提示段错误,下面有问题补充。

y=-sin2x.
科目:高中数学
把函数y=cosx的图象上所有的点的横坐标缩小到原来的一半,纵坐标保持不变,然后把图象向左平移π3个单位长度,得到新的函数图象,那么这个新函数的解析式为(  )A.y=cos(2x+π3)B.y=cos(x2+π3)C.y=cos(2x+2π3)D.y=cos(x2+π6)
科目:高中数学
把函数y=cosx的图象上的所有点的横坐标缩小到原来的一半(纵坐标不变),然后把图象向左平移π4个单位,则所得图形对应的函数解析式为(  )A.y=cos(12x+π4)B.y=cos(2x+π4)C.y=cos(12x+π8)D.y=cos(2x+π2)
精英家教网新版app上线啦!用app只需扫描书本条形码就能找到作业,家长给孩子检查作业更省心,同学们作业对答案更方便,扫描上方二维码立刻安装!
请输入姓名
请输入手机号常见的图形变换与点的坐标变化规律有哪些?请阅读并补充下面的总结:
(1)当横坐标乘以-1,纵坐标不变时,所得图案与原图案关于 y轴对称;
(2)当横坐标不变,纵坐标乘以-1时,所得图案与原图案关于 x轴对称;
(3)当横坐标都加上(或减去)某一个数,纵坐标不变时,所得图案与原图案相比整体向 右(或向 左)移动.
(4)当横坐标不变,纵坐标都加上(或减去)某一个常数时,所得图案整体向 上(或向 下)移动.
(5)当横坐标、纵坐标都变为原来的n倍(或n分之一)时,所得图案放大(或缩小)为原来的 n倍(或 n分之一).
解:(1)当横坐标乘以-1,纵坐标不变时,所得图案与原图案关于y轴对称;
(2)当横坐标不变,纵坐标乘以-b时,所得图案与原图案关于x轴对称;
(3)当横坐标都加上(或减去)某一个数,纵坐标不变时,所得图案与原图案相比整体向右(或向左)移动;
(4)当横坐标不变,纵坐标都加上(或减去)某一个常数时,所得图案整体向上(或向下)移动;
(5)当横坐标、纵坐标都变为原来的n倍(或n分之一)时,所得图案放大(或缩小)为原来的n倍(或n分之一).
故答案为:(1)y,(2)x,(3)右,左,(3)上,下,(5)n,n.
根据题意的描述观察坐标的变化特点结合平移及轴对称的知识,可判断出所得的图案与图案的关系.后使用快捷导航没有帐号?
查看: 2851|回复: 1
使用R绘制几种常用的双坐标轴图形
注册会员, 积分 80, 距离下一级还需 120 积分
论坛徽章:1
之前公众号推送了一系列关于使用包绘制统计图形的文章,有网友询问是否可以绘制双轴的统计图形。很抱歉,Hradly在设计ggplot2包时就没有将双轴图形功能考虑进来。难道就无法绘制双轴图形了吗?非也,R不仅是统计学家的标准工具,也是一款绘制图形的理想工具。下面就跟大家介绍plotrix包中的twoord.plot()函数和twoord.stackplot()函数,它们可以实现双坐标轴图形的绘制。
twoord.plot()函数语法及参数含义:
twoord.plot(lx,ly,rx,ry,data=NULL,main=&&,
& && && && &xlim=NULL,lylim=NULL,rylim=NULL,
& && && && &mar=c(5,4,4,4),lcol=1,rcol=2,
& && && && &xlab=&&,lytickpos=NA,ylab=&&,
& && && && &ylab.at=NA,rytickpos=NA,rylab=&&,
& && && && &rylab.at=NA,lpch=1,rpch=2,
& && && && &type=&b&,xtickpos=NULL,
& && && && &xticklab=NULL,halfwidth=0.4,
& && && && &axislab.cex=1,do.first=NULL,...)
lx,ly,rx,ry:分别指定左坐标轴和右坐标轴的值,必须是连续的值
data:需要绘制双轴图形的数据框
main:为图形指定标题
xlim:限制横坐标值的范围
lylim,rylim:限制左右纵坐标值的范围
mar:设置图形边界距,默认值为(5,4,4,4)
lcol,rcol:设置左右坐标轴的颜色,这样可以起到图例的作用
xlab:设置横坐标轴标签
lytickpos:设置左坐标轴刻度标签的位置
ylab:设置左坐标轴标签
ylab.at:设置左坐标轴标签位置
rytickpos:设置右坐标轴刻度标签的位置
rylab:设置又坐标轴标签
rylab.at:设置右坐标轴标签位置
lpch,rpch:设置左右坐标轴图形的外观
type:指定图形类型
xtickpos:设置横坐标轴刻度标签位置
xticklab:设置横坐标轴刻度标签
halfwidth:设置用户给定条形图宽度的一半
axislab.cex:设置坐标轴标签和刻度标签的大小
do.first:通过该参数可以往图形中添加背景色或网格线
下面通过案例来说明twoord.plot()函数的应用:
library(plotrix)
#绘制双轴的两个线图
Date &- seq(from = as.Date(''), to = as.Date(''), by = 'month')
Consumers &- c(100,80,120,153,200,188,220,322,300,321,282,304)
Amount &- c(8,00,00,71)
df1 &- data.frame(Date = Date, Consumers=Consumers, Amount = Amount)
twoord.plot(lx = df1$Date, ly = df1$Consumers, rx = df1$Date, ry = df1$Amount, main = '双轴的两条线图', xlab = '月份', ylab = '会员人数', rylab = '总消费额', type = c('line','line'))
虽然双坐标轴图形已经绘制好,但图中有几个不满意的地方:
1)横坐标轴的刻度标签不是正确的日期格式
2)右坐标轴刻度标签很挤
3)图形不炫酷,想添加背景色或网格线
好,这些不满意的地方都不是问题,twoord.plot()函数可以轻松搞定:
1)通过xticklab参数重新设置横坐标轴的刻度标签
2)通过rytickpos参数重新设置刻度标签
3)通过do.first参数给图形添加背景色和网格线
twoord.plot(lx = df1$Date, ly = df1$Consumers, rx = df1$Date, ry = df1$Amount, main = '双轴的两条线图', xlab = '月份', ylab = '会员人数', rylab = '总消费额', type = c('line','line'), xtickpos=as.numeric(df1$Date), xticklab = as.character(df1$Date), rytickpos = seq(500,5000,by = 1500), do.first = 'plot_bg(col = \'gray\'); grid(col = \'white\', lty = 2)')
这样的图形结果要比上面的图看起来舒服多了。如果想把左坐标轴的会员人数用条形图表示,右坐标轴的总消费额用线条表示,该如何操作呢?很简单,只需将type参数设置为('bar','line')就可以了:
twoord.plot(lx = df1$Date, ly = df1$Consumers, rx = df1$Date, ry = df1$Amount, lcol = 'steelblue', main = '双轴的两条线图', xlab = '月份', ylab = '会员人数', rylab = '总消费额', type = c('bar','line'), xtickpos=as.numeric(df1$Date), xticklab = as.character(df1$Date), rytickpos = seq(500,5000,by = 1500),&&do.first = 'plot_bg(col = \'gray\'); grid(col = \'white\', lty = 2)')
哎?又有问题了,这个条形图怎么这么细窄?超级难看。不要着急,只要稍稍调整halfwidth参数的大小即可,这里设置为8:
twoord.plot(lx = df1$Date, ly = df1$Consumers, rx = df1$Date, ry = df1$Amount, lcol = 'steelblue', main = '双轴的两条线图', xlab = '月份', ylab = '会员人数', rylab = '总消费额', type = c('bar','line'), xtickpos=as.numeric(df1$Date), xticklab = as.character(df1$Date), rytickpos = seq(500,5000,by = 1500), halfwidth = 8, do.first = 'plot_bg(col = \'gray\'); grid(col = \'white\', lty = 2)')
这会儿图形正常了。还记得直方图是如何绘制的吗?hist()函数,直方图+核密度图是如何绘制的?hist()函数+lines()函数:
set.seed(1000)
x = rnorm()
h &- hist(x, breaks = 50)
#绘制直方图和核密度图
hist(x, breaks = 50, col = 'steelblue')
lines(density(x), col = 'red')
哎?核密度线怎么成了一条直线了?原来是因为直方图高度对于的频次与核密度值不是一个量纲,即频次在0~60之间,而核密度值在0~1之间。如果要使核密度曲线体现出来,必须将hist()函数中freq参数设置为FALSE:
#绘制直方图和核密度图
hist(x, breaks = 50, col = 'steelblue', freq = FALSE)
lines(density(x), col = 'red', lwd=2)
如果我既想看到不同组的频次,又想看到对应的密度值该怎么办呢?这个时候就需要绘制双轴图了:
x1 &- h$mids
y1 &- h$counts
x2 &- seq(min(x), max(x), by = 0.01)
y2 &- dnorm(seq(min(x), max(x), by = 0.01),10,3)
twoord.plot(lx = x1, ly = y1, rx = x2, ry = y2, type=c('bar','l'), lcol = 'steelblue', rcol = 'red', ylab = 'Counts', rylab = 'Density', main = 'Histogram and density curve', halfwidth=0.2, lylim = c(0,max(y1)+1), rylim = c(0,0.2),lwd=2)
关于twoord.plot()函数,最后再介绍一种图,帕累托图形。即图形中包一个纵坐标轴表示绝对数量,另一个纵坐标轴表示累计百分比。实现该图脚本如下:
type &- 1:7
absolute &- c(12,15,20,28,11,5,7)
cum_per &- cumsum(absolute)/sum(absolute)
twoord.plot(lx = type, ly = absolute, rx = type, ry = cum_per, type=c('bar','l'), lcol = 'steelblue', rcol = 'red', ylab = '总数', rylab = '累计百分比%', main = '帕累托图', xtickpos=type, xticklab = c('A','B','C','D','E','F','G'))
下面再看一下twoord.stackplot()函数,该函数与twoord.plot()的不同之处在于,其可以绘制堆叠图,函数具体语法和参数含义如下:
twoord.stackplot(lx, rx, ldata, rdata,
& && && && && && && &&&lcol, rcol, ltype, rtype,
& & & && && && && && & border, rylab, lylab, xlab,
& & & && && && && && & ..., incrylim=NULL,halfwidth=0.4,
& & & && && && && && & leftfront=FALSE,
& & & && && && && && & mar = c(5, 4, 4, 4))
lx,rx:指定左右横坐标轴的值
ldata,rdata:指定左右纵坐标轴的值
lcol, rcol:指定左右坐标轴的颜色
ltype, rtype:指定左右坐标轴线的类型
border:指定条形图边框颜色
rylab,lylab:指定左右纵坐标轴标签
xlab:指定横坐标轴标签
incrylim:增加坐标轴值的范围
halfwidth:设置用户给定条形图宽度的一半
leftfront:如果leftfront设置为TRUE的话,则左坐标轴将置于顶层
mar:设置图形边界距,默认值为(5,4,4,4)
现在有一个场景是这样的,需要绘制某APP在2015年各月中新老会员人数及新会员所占比重:
set.seed(1111)
Date &- 1:12
Old &- round(runif(12, 100,300))
New &- round(runif(12, 50,120))
Ratio &- New/(New+Old)
twoord.stackplot(lx=Date, rx=Date, ldata=cbind(Old, New), rdata=Ratio,&&lcol=c('steelblue','orange'), rcol='red', ltype=&bar&, rtype='l', border=&grey80&, lylab = '人数', rylab = '新客比例', xlab='月份', main='新老客占比', incrylim=0.1)
上图能够很高的看出新老客之间的数量对比,同时也能看出新客的趋势线,唯一不足的是,没有图例,下面就以图层的概念,在该图的基础上添加一下图例:
#扩展绘图区域并添加图层
par(xpd=TRUE)
par(new=TRUE)
#在原来图形的基础上绘制一张空图
plot(0:1, 0:1, type=&n&, xlab=&&,ylab=&&, axes=FALSE)
#添加左坐标轴轴图例
legend(0, 1.5, leg=c('老客', '新客'), fill=c('steelblue','orange'), bty = 'n')
#添加右坐标轴轴图例
legend(-0.03, 1.25, leg='新客比例', col='red', lty = 1, bty = 'n')
par(xpd=FALSE, new=FALSE)
非常完美,根据以上的场景要求,就绘制完一幅图形了,而且也能迅速的了解到图所表达的内容。
新手上路, 积分 2, 距离下一级还需 48 积分
论坛徽章:0
一年后看到这个帖子,不知道楼主还在不在,请问怎么调整坐标轴标签的字体大小呢?
扫一扫加入本版微信群

我要回帖

更多关于 编译程序属于什么软件 的文章

 

随机推荐