R语言自定义坐标轴排序

Python013

R语言自定义坐标轴排序,第1张

        R语言作图时,默认情况下软件会按照自己的方式对坐标轴的项目进行排序,然而这种排序往往不是我们所希望的,因此需要想办法让坐标轴的项目按照我们希望的顺序输出。

        如下所示,我有两列数据,要绘制箱线图,以第一列为Y轴,第二列为X轴,希望X轴的输出顺序按照第二列由上到下排列。

然而软件输出的顺序如下:

解决方案:

通过一个因子事先自定义X轴顺序,作图命令如下:

至此,X轴各项目会按照我们自定义的顺序排列。

喜大普奔,终于解决了reorder()降序排序的问题;

举例说明一下:

首先我有两列数据:第一列是样品名,第二列是对应数值。

先画个简单的barplot:

如下图:

我想将x轴排序,可以提前将数据排好序之后再画图,但是这里用reorder()函数直接根据y值的大小排序:

如图:

但是reorder如何从大到小排呢?

研究了好久,比如加了reverse=F/T,加了decrease=F/T,等等,都不行,终于发现原来只要加个“-”就可以:

图:

图不怎么好看,只是为了演示reorder从大到小排序。

数据准备

1 基础图形绘制

2 禁用坐标轴

禁用全部坐标轴

禁用坐标轴但保留边框

禁用部分坐标轴

3 坐标轴参数设置

函数:axis(side, at = NULL, labels = TRUE, tick = TRUE, line = NA, pos = NA, outer = FALSE, font = NA, lty = "solid", lwd = 1, lwd.ticks = lwd, col = NULL, col.ticks = NULL, hadj = NA, padj = NA, gap.axis = NA, ...)

side表示坐标轴位置,取值1、2、3、4分别代表下、左、上、右;

at表示需要添加刻度的数值,默认会根据变量的取值范围计算几个合适的刻度,也可以手工指定;

labels表示刻度标签,指定在刻度上需要标记的内容,默认就是刻度对应的值;

tick是逻辑变量,取TRUE表示显示坐标轴和刻度线,取FALSE时,坐标轴线和刻度线不画出;

line表示坐标轴线位置与图像边框的距离,取负数时会画在图像边框以内;

pos 表示轴线所在的位置; line.outer取TRUE时,坐标轴将画在画布边缘处; font.axis表示坐标轴刻度值的字体,font=1表示正体,2表示黑体,3表示斜体,4表示黑斜体。

lty表示线型,用在axis函数中表示坐标轴线型;

lwd表示线的粗细,用在axis函数中表示坐标轴线粗细;

lwd.ticks表示刻度线粗细。

col表示图的颜色,用在axis函数中表示坐标轴线和坐标刻度线的颜色;

col.axis表示坐标轴刻度值的颜色;

col.ticks表示坐标轴刻度线的颜色;

hadj指将刻度值沿平行坐标轴方向调整的距离;

padj指将刻度值沿垂直坐标轴方向调整的距离;

las表示坐标刻度值文字方向,las=0表示文字方向与坐标轴平行,1表示始终为水平方向,2表示与坐标轴垂直,3表示终为垂直方向。

tck表示刻度线长度。

4 次要刻度线

minor.tick(nx=n,ny=n,tick.ration=n)

nx和ny分别指定了X轴和Y轴每两条主刻度线之间通过次要刻度线划分得到的区间个数。 tick.ratio表示次要刻度线相对于主刻度线的大小比例。

参考资料:

《R语言实战》(中文版),人民邮电出版社,2013.

R语言作图:坐标轴设置, https://blog.csdn.net/weixin_40628687/article/details/79254791

R语言低级绘图函数-axis, https://www.cnblogs.com/xudongliang/p/6762618.html