小编jer*_*n81的帖子

ggplot结合了来自不同data.frames的两个图

我想将两个ggplots从两个不同的data.frames组合成一个图.您将在下面找到代码.我想将情节1和2或情节3和4结合起来.

df1 <- data.frame(p=c(10,8,7,3,2,6,7,8),
             v=c(100,300,150,400,450,250,150,400))
df2 <- data.frame(p=c(10,8,6,4), v=c(150,250,350,400))

plot1 <- qplot(df1$v, df1$p)
plot2 <- qplot(df2$v, df2$p, geom="step")

plot3 <- ggplot(df1, aes(v, p)) + geom_point()
plot4 <- ggplot(df2, aes(v, p)) + geom_step()
Run Code Online (Sandbox Code Playgroud)

这一定非常容易,但不知怎的,我无法让它发挥作用.谢谢你的时间.

r ggplot2

65
推荐指数
2
解决办法
11万
查看次数

使用上面一行中的值在列中添加缺失值

每周我都是一个不完整的分析数据集.看起来像:

df1 <- data.frame(var1 = c("a","","","b",""), 
             var2 = c("x","y","z","x","z"))
Run Code Online (Sandbox Code Playgroud)

缺少一些var1值.数据集应该看起来像这样:

df2 <- data.frame(var1 = c("a","a","a","b","b"), 
             var2 = c("x","y","z","x","z"))
Run Code Online (Sandbox Code Playgroud)

目前我使用Excel宏来执行此操作.但这使得分析自动化变得更加困难.从现在开始,我想在R中这样做.但我不知道该怎么做.

谢谢你的帮助.

评论后的问题更新

var2与我的问题无关.我唯一想做的就是.从df1到df2.

df1 <- data.frame(var1 = c("a","","","b",""))
df2 <- data.frame(var1 = c("a","a","a","b","b"))
Run Code Online (Sandbox Code Playgroud)

r

16
推荐指数
4
解决办法
7632
查看次数

使用ggplot2在循环中创建绘图

我必须生成250个具有相同视图的图.

我的示例数据集:

df <- data.frame(name = c("john","alex","mike","dennis","alex"),
             expenses = c("10","12","15","8","2"),
             type = c("food","rent","rent","food","food"))
Run Code Online (Sandbox Code Playgroud)

我想在单个地块中为每个名字的费用添加条形图."alex"的情节将如下所示:

selected.name <- "alex"
df1 <- subset(df, name == selected.name)
ggplot(data = df1, aes(type, expenses)) + geom_bar()
Run Code Online (Sandbox Code Playgroud)

现在我想使用一个循环,为df中的每个名称绘制相同的图.我试图使用一个for循环来运行上面的绘图代码作为源文件.但是我无法将name变量传递给源文件,因此它会为每个名称绘制图形.现在我只从for循环中得到一个图形.

r ggplot2

12
推荐指数
1
解决办法
1万
查看次数

用ggplot绘制多个正方形

我正试图改变ggplot的'背景'颜色.我想要实现的是下图所示的情节.我已经用geom_ribbon尝试了它,但我只能定义ymin和ymax.这允许我只创建两个正方形.

我到目前为止使用的代码:

df <- data.frame(x = rnorm(10), y = rnorm(10))

ggplot(df) +
 geom_point(aes(x, y)) +
 geom_ribbon(aes(x = x, ymin = min(y), ymax = 0), fill = "red", alpha = .5) +
 geom_ribbon(aes(x = x, ymin = min(0), ymax = max(y)), fill = "blue", alpha = .5)
Run Code Online (Sandbox Code Playgroud)

这是我想得到的结果:

ggplot示例http://i50.tinypic.com/25j8p5z.png

谢谢你的时间.

r ggplot2

9
推荐指数
1
解决办法
1万
查看次数

控制ggplot中的'基点'点大小(大小)

我正在寻找一种通过因子增加或减少下图中所有点的方法.我可以控制内部的aes.我可以控制艾斯以外的大小.但我无法弄清楚如何将两者结合起来.

df <- data.frame(val1 = rnorm(10, 5), val2 = rnorm(10, 5), size = rnorm(10, 5))
ggplot(df) + geom_point(aes(val1, val2, size = size))
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的时间.

r ggplot2

6
推荐指数
1
解决办法
7505
查看次数

将值添加到rCharts hPlot工具提示

我想通过rCharts为标准的Highcharts工具提示添加一些额外的值.示例代码:

require(rCharts)
df <- data.frame(x = c(1:5), y = c(5:1), 
             z = c("A", "B", "C", "D", "E"),
             name = c("K", "L", "M", "N", "O"))
h1 <- hPlot(x = "x", y = "y", data = df, type = "scatter", group = "z")
Run Code Online (Sandbox Code Playgroud)

这会生成带有x和y值的工具提示.系列名称为标题.现在我还想将名称值添加到工具提示中.但是我不知道如何做到这一点.

r highcharts rcharts

6
推荐指数
1
解决办法
2650
查看次数

rChart在闪亮的应用程序中打开新窗口

我试图在一个闪亮的应用程序中绘制一个rChart并通过Rstudio服务器运行它.当我运行应用程序时,闪亮页面会显示错误:尝试应用非功能,RChart将在新的浏览器窗口中打开.

如何让rChart出现在闪亮的应用程序中?

server.R

library(shiny)
require(rCharts)

names(iris) = gsub("\\.", "", names(iris))

shinyServer(function(input, output) {

output$myChart  <- renderChart({
h1 <- hPlot(x = "Wr.Hnd", y = "NW.Hnd", data = MASS::survey, 
type = c("line", "bubble", "scatter"), group = "Clap", size = "Age")
return(h1$show(cdn = TRUE))
  })
})
Run Code Online (Sandbox Code Playgroud)

ui.R

library(shiny)
require(rCharts)
shinyUI(pageWithSidebar(

headerPanel("rCharts and shiny"),

sidebarPanel(),

mainPanel(
showOutput("myChart")
  )
))
Run Code Online (Sandbox Code Playgroud)

我的R会话信息

R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

other attached packages:
[1] shiny_0.7.0     plyr_1.8        rCharts_0.3.51  devtools_1.3    ggplot2_0.9.3.1    RMySQL_0.9-3    DBI_0.2-7      
Run Code Online (Sandbox Code Playgroud)

r rstudio-server shiny rcharts

6
推荐指数
2
解决办法
1892
查看次数

R,Latex,Sweave,ggplot2 - 更改ggplot尺寸

我正在制作R Sweave报告.我在sweave pdf输出中对ggplot维度有一些困难.我的代码:

\documentclass{report}

\begin{document}

demo demo demo demo demo demo demo demo demo demo demo demo 

\begin{figure}[h]
 \begin{center}
<<echo=FALSE, fig=TRUE>>=
require(ggplot2)
df <- data.frame(a= c(1:10), b = c (10:1))

ggplot(data = df, aes(a, b)) + geom_line()
@
  \caption{caption}
 \end{center}
\end{figure}

demo demo demo demo demo demo demo demo demo demo demo demo 

\end{document}
Run Code Online (Sandbox Code Playgroud)

现在我想控制pdf输出中的绘图宽度和高度尺寸.实际上我想保持高度相同,但使宽度与文本宽度相同.

谢谢你的时间.

latex r ggplot2 sweave

4
推荐指数
1
解决办法
3932
查看次数

通过GoogleVis更改工具提示

下面的代码生成我想要的图表.除了我想在工具提示中添加值l.目前我不知道该怎么做.

require(googleVis)

df <-  data.frame(x = c(1:5), y = c(10, 20 , 30, 40, 50), 
                  l = c("A", "B", "C", "D", "E"))

plot(gvisLineChart(df, xvar = "x", yvar = "y"))
Run Code Online (Sandbox Code Playgroud)

r google-visualization googlevis

4
推荐指数
1
解决办法
2003
查看次数

用ggplot创建浮动饼图

目前我正在使用浮动饼图作为报告之一进行报告.目前我使用plotrix包来绘制这个饼图.但是由于我将ggplot2用于所有其他图,因此饼图看起来不同.所以我正在尝试使用ggplot2创建绘图.目前我有两个问题:

  1. ggplot饼图绘制在极坐标系统上.我想在笛卡尔坐标系上绘制多个饼图.目前我不知道该怎么做.

  2. 我希望能够控制笛卡尔坐标系上的饼半径.

这是我目前使用的代码:

library("plotrix")
plot(1:5, type="n", xlab="x", ylab="y")
floating.pie(2, 3, c(1,3,5), radius=0.5)
floating.pie(4, 2, c(2,4), radius=0.2)
floating.pie(4.5, 4, c(3,2,5,1), radius=0.3)
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间和帮助.

r ggplot2 pie-chart

3
推荐指数
1
解决办法
3676
查看次数

为data.frame中的每个变量组合选择max

我正试图找到一种简单的方法来获得产品 - 客户组合的最后付费价格.

customers <-  c("cust_a","cust_b","cust_a","cust_b")
products <- c("prod_a","prod_b","prod_a","prod_b")
dates <- c("2011/10/25","2011/09/14","2011/03/12","2011/05/06")
prices <-c("10","12","15","18")
df <- cbind(customers,products)
df <- cbind(df, dates)
df <- as.data.frame(cbind(df,prices))
Run Code Online (Sandbox Code Playgroud)

接下来,我想为每个客户创建一个新的data.frame - 价格与最高日期的产品组合.在此示例data.frame中,cust_a和prod_1组合将给出10,cust_b和prod_2将给出12.

我知道如何在SQL中执行此操作,但在这种情况下,SQL解决方案对我来说不是一个选项.

r

1
推荐指数
1
解决办法
855
查看次数

在数据框中存储迭代

我想计算:val = s*m^y并将每个y迭代的结果存储在数据框中.

例:

当m = 10,s = 1且y迭代为2时,这将导致:

df <- data.frame(y=c(0:2), val = c(1,10,100))
Run Code Online (Sandbox Code Playgroud)

我不知道如何创建这个数据框.

r

0
推荐指数
1
解决办法
126
查看次数