Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在一个图中绘制多个散点矩阵_R_Plot_Lattice_Scatter Plot - Fatal编程技术网

R 在一个图中绘制多个散点矩阵

R 在一个图中绘制多个散点矩阵,r,plot,lattice,scatter-plot,R,Plot,Lattice,Scatter Plot,我觉得这个问题以前被问过很多次,但是从我所看到的问题来看,到目前为止,没有一个解决方案对我有效 我希望将两个相关矩阵的值绘制为散点图,在一个具有相同y范围(从0到1)的图中彼此相邻 我的原始数据是跨越112家公司数年的时间序列,我将其分为两个子集,周期A和周期B。原始数据是一个zoo对象 然后,我为这两个时期创建了相关矩阵: corr_A <- cor(series_A) corr_B <- cor(series_B) 但是,在结果图中,两个散点图相互叠加: 我还尝试更改矩阵本身-

我觉得这个问题以前被问过很多次,但是从我所看到的问题来看,到目前为止,没有一个解决方案对我有效

我希望将两个相关矩阵的值绘制为散点图,在一个具有相同y范围(从0到1)的图中彼此相邻

我的原始数据是跨越112家公司数年的时间序列,我将其分为两个子集,周期A和周期B。原始数据是一个zoo对象

然后,我为这两个时期创建了相关矩阵:

corr_A <- cor(series_A)
corr_B <- cor(series_B)
但是,在结果图中,两个散点图相互叠加:

我还尝试更改矩阵本身-我没有使用6216行,而是使用了12432行,然后将前6512行索引为“period_A”,最后6512行索引为“period_B”-结果图与我想要的图非常相似:

是否有任何方法可以使用xyplot创建所需的绘图?或者是否有任何其他(ggplot、car)方法生成绘图

编辑(添加样本数据用于可复制示例):

head(correlation) #data frame with 6216 rows, 3 columns

X  period_A period_B
1    0.5     0.4
2    0.3     0.6
3    0.2     0.4
4    0.6     0.6

我终于找到了一个解决方案:

首先,我们堆叠数据

correlation <- stack(correlation)

生成的绘图与我想要的绘图完全相同,可以使用标准的lattice/plot命令(ylab、xlab、xlim、ylim、scales等)进行操作。

如果没有样本数据进行分析,很难提供具体的建议。但是,您想要的绘图并不是以一种对任何绘图函数都超级友好的形式进行的。使用带有
xyplot
的分组变量来制作不同的面板(或带有
ggplot
的面)是最简单的。但是如果您坚持认为它们“在同一个图中”然后,您可能需要在绘制之前转换数据的x值,然后自定义比例以打印分类级别。可能您想要小提琴图?查找小提琴图-我不认为这是我需要的。我将添加样本数据以制作一个可复制的示例。
xyplot(period_A + period_B ~ X, correlation)
head(correlation) #data frame with 6216 rows, 3 columns

X  period_A period_B
1    0.5     0.4
2    0.3     0.6
3    0.2     0.4
4    0.6     0.6
correlation <- stack(correlation)
stripplot(correlation$values ~ correlation$ind, jitter=T)