R语言统计图形参数详解:坐标轴、范围与样式

需积分: 49 77 下载量 153 浏览量 更新于2024-08-10 收藏 5.25MB PDF 举报
"这篇文档是关于R语言图形参数设置的指南,主要讲解了在创建图形时如何调整坐标轴、刻度线、作图区域限制以及对数尺度等元素。" 在R语言中,创建高质量的统计图形是数据分析的重要环节。文档提及了多个关键参数,这些参数直接影响图形的外观和功能。首先,`srt`参数用于设置字符串的旋转角度,例如在图3.1中,字符串可以按照30度或120度的角度进行旋转,以适应图形布局。 接着,`tck`和`tcl`两个参数控制坐标轴刻度线的高度。`tck`是一个比例值,可以设置刻度线相对于图形宽高的位置,正值表示向内绘制,负值则表示向外。默认情况下,若`tck`未设置,会使用`tcl`参数。`tcl`以文本行高为单位,设定刻度线的高度,正负值意义与`tck`相似,但`tcl`的默认值是-0.5,意味着刻度线向外绘制,高度为半个文本行高。 `usr`参数用于限定作图区域的边界,它是一个包含四个数值的向量`c(x1, x2, y1, y2)`,分别定义了x轴和y轴的上下左右极限。如果坐标轴设置了对数尺度(通过`xlog`和`ylog`参数),那么这些极限实际上是10的相应幂次。 `xaxs`和`yaxs`决定坐标轴的范围计算方式。默认值`'r'`会将原始数据范围扩大4%后绘制,而`'i'`则直接使用原始数据范围。然而,还有其他计算方式,但由于在R中未生效,文档并未详细介绍。 `xaxt`和`yaxt`参数控制坐标轴的显示与否。默认的`'s'`表示标准样式,而`'n'`则表示不绘制坐标轴,这在需要自定义坐标轴或者隐藏坐标轴时非常有用。 `xlog`和`ylog`设置坐标轴是否使用对数尺度。默认值`FALSE`表示线性尺度,设置为`TRUE`则开启对数尺度,这对于处理具有广泛动态范围的数据特别有用。 最后,`xpd`参数管理超出边界的图形处理。`FALSE`会将图形限制在作图区域内,超出部分被截去,`TRUE`则限制在图形区域内,`NA`则限制在设备区域内。了解这些参数对于优化图形的布局和视觉效果至关重要。 文档还提到了作者对知识分享的立场,采用了Creative Commons的署名-非商业性使用-相同方式共享2.5中国大陆许可证,旨在促进知识的自由传播和交流。

给这段代码加上注释 //计算AGV矩形轮廓路径 计算角点:利用车头正方向的夹角差值计算车的四个角度 QPainterPath path; double carWidth =m_para.width; double carLength =m_para.length; double carAngle =m_attri->angle/100; double angle = atan((carWidth)/(carLength));//夹角差值 double length = sqrt(pow(carWidth,2)+pow(carLength,2))/2;//对角线长度的一半 //计算AGV外接矩形轮廓路径 /m_boundPath //矩形的四个顶点存储在m_agvRectPoints中,绘制AGV锁定区域需要用到m_agvRectPoints QPointF pointRT = calLinePath(path,length,carAnglePI/180+angle,true);//右上角 m_agvRectPoints[0]=pointRT; QPointF pointRB = calLinePath(path,length,carAnglePI/180-angle);//右下角--头 m_agvRectPoints[1]=pointRB; QPointF pointLB = calLinePath(path,length,carAnglePI/180+angle+PI);//左下角--尾 m_agvRectPoints[2]=pointLB; QPointF pointLT = calLinePath(path,length,carAnglePI/180-angle+PI);//左上角--尾 m_agvRectPoints[3]=pointLT; path.closeSubpath(); m_path = path; //计算AGV锁定矩形轮廓路径 /m_trackPath QPainterPath trackPath; double tracklength = sqrt(pow(carWidth+carWidth/2.0,2)+pow(carLength+carLength/2.0,2))/2;//对角线长度的一半 //agv锁定矩形随agv旋转 --MYJ 2021.12.14 calLinePath(trackPath, tracklength, -(carAnglePI / 180 + angle), true);//右上角 calLinePath(trackPath, tracklength, -(carAnglePI / 180 - angle));//右下角--头 calLinePath(trackPath, tracklength, -(carAnglePI / 180 + angle + PI));//左下角--尾 calLinePath(trackPath, tracklength, -(carAnglePI / 180 - angle + PI));//左上角--尾 trackPath.closeSubpath(); m_boundaryPath = trackPath;

2023-06-13 上传