Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.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
在RGR冲积层中使用冲积层可视化等级变化_R_Ggplot2 - Fatal编程技术网

在RGR冲积层中使用冲积层可视化等级变化

在RGR冲积层中使用冲积层可视化等级变化,r,ggplot2,R,Ggplot2,我有一个非常基本的df,其中我计算了两个时间戳之间的值的秩变化: value rank_A rank_B group 1 A 1 1 A 2 B 2 3 A 3 C 3 2 B 4 D 4 4 B 5 E 5 8 A 6 F 6 5 C 7 G 7 6 C 8

我有一个非常基本的df,其中我计算了两个时间戳之间的值的秩变化:

   value rank_A rank_B group
1      A   1     1      A
2      B   2     3      A
3      C   3     2      B
4      D   4     4      B
5      E   5     8      A
6         F   6    5   C
7         G   7    6   C
8         H   8    7   A
对我来说有点棘手的是在Y轴上绘制值

ggplot(df_alluvial, aes(y = value, axis1 = rank_A, axis2 = rank_B))+
  geom_alluvium(aes(fill = group), width = 1/12)+
  ...
到目前为止,我可以成功地绘制等级变化和组,但它们没有链接到我的值名称-没有轴名称,我不知道如何添加它们

最后,它看起来应该与此类似:


谢谢你的建议

你的最新消息让我更清楚了这个问题

y参数应为数值,数据应为“长”格式。我不知道如何更改数据以满足这些要求。因此,我在本例中创建了一些新数据。我试图使数据与您链接到的绘图中的数据相似

标签和地层指的是城市名称。可以使用geom_文本来标记地层

加载库 图书馆管理员 图书馆 创建一些数据 冲积层厚度:12 x 3 >城市年规模 > >1901年1月1日伦敦 >2伯明翰1901 10 >3曼彻斯特1901100 >4伦敦1911 10 >5伯明翰1911 15 >6曼彻斯特1911100 >7伦敦1921 15 >8伯明翰1921 20 >9曼彻斯特1921100 >10伦敦1931 30 >11伯明翰1931 25 >12曼彻斯特1931100 GGU冲积层, aesx=工厂区,地层=城市,冲积层=城市, y=尺寸, 填充=城市,标签=城市+ geom_stratumalpha=.5+ geom_冲积层+ geom_textstat=地层,尺寸=3 如果要根据城市大小对城市进行排序,可以将递减=TRUE添加到绘图中的所有图层

ggplot(df_alluvial,
       aes(x = as.factor(year), stratum = city, alluvium = city, 
           y = size,
           fill = city, label = city))+
  geom_stratum(alpha = .5, decreasing = TRUE)+
  geom_alluvium(decreasing = TRUE)+
  geom_text(stat = "stratum", size = 3, decreasing = TRUE)

由v0.3.0于2019-11-08创建,您的更新让我更清楚了这个问题

y参数应为数值,数据应为“长”格式。我不知道如何更改数据以满足这些要求。因此,我在本例中创建了一些新数据。我试图使数据与您链接到的绘图中的数据相似

标签和地层指的是城市名称。可以使用geom_文本来标记地层

加载库 图书馆管理员 图书馆 创建一些数据 冲积层厚度:12 x 3 >城市年规模 > >1901年1月1日伦敦 >2伯明翰1901 10 >3曼彻斯特1901100 >4伦敦1911 10 >5伯明翰1911 15 >6曼彻斯特1911100 >7伦敦1921 15 >8伯明翰1921 20 >9曼彻斯特1921100 >10伦敦1931 30 >11伯明翰1931 25 >12曼彻斯特1931100 GGU冲积层, aesx=工厂区,地层=城市,冲积层=城市, y=尺寸, 填充=城市,标签=城市+ geom_stratumalpha=.5+ geom_冲积层+ geom_textstat=地层,尺寸=3 如果要根据城市大小对城市进行排序,可以将递减=TRUE添加到绘图中的所有图层

ggplot(df_alluvial,
       aes(x = as.factor(year), stratum = city, alluvium = city, 
           y = size,
           fill = city, label = city))+
  geom_stratum(alpha = .5, decreasing = TRUE)+
  geom_alluvium(decreasing = TRUE)+
  geom_text(stat = "stratum", size = 3, decreasing = TRUE)

由v0.3.0于2019-11-08创建,您正在将字符值映射到y轴。这是有意的吗?geom_stratumaesfill=组+geom_textstat=地层,label.strata=TRUE@SteenHarsted是的,这些实际上是位置-最后看起来应该类似于此:但该图中的y轴不是城市名称字符向量,而是大小数字,对吗?城市名称标识的是线条,而不是y轴上的位置。@SteenHarsted yes correct,这使我很难掌握如何在这一条上使用冲积层-文档总是使用频率,我没有。如何在y轴上绘制城市名称字符向量。您正在将字符值映射到y轴。这是有意的吗?geom_stratumaesfill=组+geom_textstat=地层,label.strata=TRUE@SteenHarsted是的,这些实际上是位置-最后看起来应该类似于此:但该图中的y轴不是城市名称字符向量,而是大小数字,对吗?城市名称标识的是线条,而不是y轴上的位置。@SteenHarsted yes correct,这使我很难掌握如何在这一条上使用冲积层-文档总是使用频率,我没有。如何在y轴上绘制城市名称字符向量。谢谢!我现在有了城市的名字,就像你一样。但是,现在代码按相同的数字对右侧代码进行排序。所以我只有A->B的直线,因为B现在排名第一。有什么想法吗?我用与您相同的列将df设置为long:city/timestamp/rank'rank'这是指大小的排名吗?如果是这种情况,添加一个包含绝对大小的大小列,将其用于y,然后让绘图为您进行排序,如我的第二个示例所示。在您给出的示例中,我相信他们已经将“rank”映射到了“color”参数。+1可能还值得注意的是,GG不是设计用来接受variabl的
数据为宽格式时的e y值:列对应于轴,其值指示地层,而不是每个案例行的大小;然后,只有一个数值列可以传递给y,因此y在所有轴上都是固定的。@CoryBrunson-感谢您指出这一点。我对答案进行了编辑,使之更加清晰。谢谢!我现在有了城市的名字,就像你一样。但是,现在代码按相同的数字对右侧代码进行排序。所以我只有A->B的直线,因为B现在排名第一。有什么想法吗?我用与您相同的列将df设置为long:city/timestamp/rank'rank'这是指大小的排名吗?如果是这种情况,添加一个包含绝对大小的大小列,将其用于y,然后让绘图为您进行排序,如我的第二个示例所示。在您给出的示例中,我相信他们已将“rank”映射到“Color”参数。+1可能还值得注意的是,当数据为宽幅形式时,GGM的设计不是采用可变y值:列对应于轴,它们的值指示地层,而不是每个案例行的大小;然后,只有一个数值列可以传递给y,因此y在所有轴上都是固定的。@CoryBrunson-感谢您指出这一点。我对答案进行了编辑,使之更加清晰。