我想将两个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)
这一定非常容易,但不知怎的,我无法让它发挥作用.谢谢你的时间.
每周我都是一个不完整的分析数据集.看起来像:
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) 我必须生成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循环中得到一个图形.
我正试图改变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
谢谢你的时间.
我正在寻找一种通过因子增加或减少下图中所有点的方法.我可以控制内部的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)
在此先感谢您的时间.
我想通过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值的工具提示.系列名称为标题.现在我还想将名称值添加到工具提示中.但是我不知道如何做到这一点.
我试图在一个闪亮的应用程序中绘制一个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 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输出中的绘图宽度和高度尺寸.实际上我想保持高度相同,但使宽度与文本宽度相同.
谢谢你的时间.
下面的代码生成我想要的图表.除了我想在工具提示中添加值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) 目前我正在使用浮动饼图作为报告之一进行报告.目前我使用plotrix包来绘制这个饼图.但是由于我将ggplot2用于所有其他图,因此饼图看起来不同.所以我正在尝试使用ggplot2创建绘图.目前我有两个问题:
ggplot饼图绘制在极坐标系统上.我想在笛卡尔坐标系上绘制多个饼图.目前我不知道该怎么做.
我希望能够控制笛卡尔坐标系上的饼半径.
这是我目前使用的代码:
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)
谢谢你的时间和帮助.
我正试图找到一种简单的方法来获得产品 - 客户组合的最后付费价格.
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解决方案对我来说不是一个选项.
我想计算: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)
我不知道如何创建这个数据框.