如何在R-studio中制作交互式图形

时间:2015-12-01 20:43:17

标签: r shiny rstudio ggvis plotly

数据有4列,大约600行。数据是使用twitteR包收集的twitter数据,然后汇总到数据框中。摘要基于每个推文中这些库中有多少单词,推文得分,然后摘要是获得特定分数的推文数。因此,列是两种类型的分数,日期,然后是具有这些分数的推文数。

Score1  Score2  Date        Number    
0       0       01/10/2015  50
0       1       01/10/2015  34
1       0       01/10/2015  10
...and so on 

日期和数据延长一个月以上,任何一种方式的分数都可以达到+/- 10左右。

我正在尝试使用气泡图绘制这类数据,x轴上的得分1和y轴上的得分2,气泡的大小取决于数量(每个推文有多少推文)天)。 我的问题是我只知道如何使用ggplot。

g <- ggplot(
 twitterdata, 
  aes(x=score1, y=score2, size=number, label=""), guide=FALSE) +
  geom_point(colour="black", fill="red", shape=21) + 
  scale_size_area(max_size = 30) + 
  scale_x_continuous(name="score1", limits=c(0, 10)) + 
  scale_y_continuous(name="score2", limits=c(-10, 10)) + 
  geom_text(size=4) + 
  theme_bw()

这只是给了我所有日期的情节,我需要的是一个很好的方法来查看数据如何随时间变化。我已经研究过使用滑块和选择器,但我真的不知道什么是最好的工具。我已经尝试过基于日期对数据进行子集化,这很好地工作但理想情况下我可以制作某种交互式图形。

我真的需要某种方式从那些数据中选择某些日子进行绘图,这样它就不会堆积在一起,而是以交互方式进行,以便可以呈现。 非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

听起来这并不能完全满足您的使用案例,但是为您的绘图添加一些交互性的极低开销方式是install.packages('plotly')并在代码中添加以下行:< / p>

# your original code
g <- ggplot(
 twitterdata, 
  aes(x=score1, y=score2, size=number, label=""),
  guide=FALSE)+
  geom_point(colour="black", fill="red", shape=21) + 
  scale_size_area(max_size = 30) + 
  scale_x_continuous(name="score1", limits=c(0,10)) + 
  scale_y_continuous(name="score2", limits=c(-10,10)) + 
  geom_text(size=4) + 
  theme_bw()

# add this line
gg <- ggplotly(g)

详细信息和演示:https://plot.ly/ggplot2/

正如埃里克建议的那样,如果你想要滑块,那么你应该看看有光泽。这是一个结合闪亮与情节的演示:https://plot.ly/r/shiny-tutorial/