带交互的ggplot重新排序

ggplot reordering w/ interaction

我有以下table。我需要按 Freq 对数据进行排序,但是,我还需要显示两个 x 轴标签 - 一个用于 start.station ,一个用于 end.station ,以便清楚我在说什么关于站对。我使用 interaction 但现在我也不确定如何输入代码以通过 Freq 订购。另外,我想在顶部 X 轴上显示 start.station,在底部 X 轴上显示 end.station。

> new_pairs
 x    y Freq start.latittude start.longitude              start.station
1  359  519  929        40.75188       -73.97770         Pershing\nSquare N
2  477  465 5032        40.75514       -73.98658        Broadway &\nW 41 St
3  484  519 1246        40.75188       -73.97770         Pershing\nSquare N
4  484  318 2654        40.75320       -73.97799 E 43 St &\nVanderbilt\nAve
5  492  267 1828        40.75098       -73.98765        Broadway &\nW 36 St
6  492  498  957        40.74855       -73.98808        Broadway &\nW 32 St
7  492  362 1405        40.75173       -73.98754        Broadway &\nW 37 St
8  493  477 1582        40.75641       -73.99003           W 41 St &\n8 Ave
9  493  529  728        40.75757       -73.99099           W 42 St &\n8 Ave
10 529 2021 1748        40.75929       -73.98860           W 45 St &\n8 Ave
   end.latitude end.longitude        end.station
1      40.75510     -73.97499 E 47 St &\nPark Av
2      40.75641     -73.99003   W 41 St &\n8 Ave
3      40.75500     -73.98014   W 44 St &\n5 Ave
4      40.75500     -73.98014   W 44 St &\n5 Ave
5      40.75020     -73.99093   W 33 St &\n7 Ave
6      40.75020     -73.99093   W 33 St &\n7 Ave
7      40.75020     -73.99093   W 33 St &\n7 Ave
8      40.75680     -73.98291   W 45 St &\n6 Ave
9      40.75680     -73.98291   W 45 St &\n6 Ave
10     40.75757     -73.99099   W 42 St &\n8 Ave    


ggplot(data= new_pairs, aes(x= interaction(end.station,start.station)    y=Freq)) +
  geom_bar(stat="identity") +
  ylab("Bikes received") + 
  xlab("Station") 

使用鸢尾花数据集。我创建了一个交互并使用 \n 来设置两组标签。您只需要为您的数据集调整 scale_x_discrete() 表达式,它应该可以工作。

iris$Species2 <- iris$Species
iris$Int <- interaction(iris$Species2, iris$Species)

ggplot(data= iris, aes(x= Int, y=Petal.Length)) + geom_bar(stat="identity") + scale_x_discrete("Int", labels = c("setosa.setosa" = "setosa\nsetosa","versicolor.versicolor" = "versicolor\nversicolor",
  "virginica.virginica" = "virginica\nvirginica"))