当前位置: 首页 > 知识库问答 >
问题:

在R中,以绘图方式在密度中添加痕迹

艾弘义
2023-03-14

使用R中的图包,我想做一个图。实际上,我需要在我的图中再添加一条密度线。我有一个按地理区域划分的一些上市公司的收入信息数据。像这样的东西

head(data)
id    income region 
  1     4556     1
  2     6545     1
  3    65465     2
  4    54555     1
  5    71442     2
  6     5645     6

首先,我用下面的密度图分析了5个和6个地区的收入

reg56<- data[data$region %in% c(5,6) , ]
dens <- with(reg56, tapply(income, INDEX = region, density))
df <- data.frame(
x = unlist(lapply(dens, "[[", "x")),
y = unlist(lapply(dens, "[[", "y")),
cut = rep(names(dens), each = length(dens[[1]]$x))
)

# plot the density 
p<- plot_ly(df, x = x, y = y, color = cut) 

但是,我想要的不止这些。我想加上总收入,即所有地区的收入。我今天晚上试过了

data$aux<- 1
dens2 <- with(data, tapply(income, INDEX = 1, density)) 
df2 <- data.frame(
 x = unlist(lapply(dens2, "[[", "x")),
 y = unlist(lapply(dens2, "[[", "y")),
 cut = rep(names(dens2), each = length(dens2[[1]]$x)) )

p<- plot_ly(df, x = x, y = y, color = cut) 
p<-  add_trace(p, df2, x = x, y = y, color = cut)  
p
Error in FUN(X[[i]], ...) : 
'options' must be a fully named list, or have no names (NULL)

有什么解决办法吗?

共有1个答案

苗运珧
2023-03-14

因为您没有命名传递给add_trace参数,所以它将它们解释为对应于默认参数顺序。add_trace的用法是

添加_跟踪(p=last_plot(),…,组,颜色,颜色,符号,符号,大小,数据=NULL,求值=FALSE)

因此,在您提供data.framedf2作为第二个参数的函数调用中,假设它对应于...参数,该参数必须是一个命名列表。您需要指定data=df2,以便add_trace理解这个参数是什么。

让我们生成一些虚拟数据来演示

library(plotly)
set.seed(999)
data <- data.frame(id=1:500, income = round(rnorm(500,50000,15000)), region=sample(6,500,replace=T) )

现在,(在计算了dfdf2之后,如您的示例所示):

p <- plot_ly(df, x = x, y = y, color = cut) %>%
  add_trace(data=df2, x = x, y = y, color = cut)  
p
 类似资料:
  • 问题内容: 我想在头部分中以编程方式添加StyleSheets,但是我看到的示例之一似乎需要多行代码才能仅添加一个样式表,即使我可能需要很多: 示例代码: 我也使用方法,但是它也不起作用。对象null抛出了错误。 我也使用了和东西,但是它们抛出了文字错误,这是我认为的常见错误。 我使用此代码: 起初它起作用,但是当我更改页面时,它停止工作。 我正在使用“母版页”,并且正在文件中编写这些代码,也有人

  • 我试图在logback中动态添加一个appender。这是我的代码。 它工作正常,但仅适用于添加追加器的特定记录器。有没有办法让它适用于应用程序中的所有记录器?我正在寻找一种动态添加和删除追加器的方法。

  • 我在ggplot2包中有一个时间序列的图,我已经执行了移动平均,我想把移动平均的结果添加到时间序列的图中。 数据集样本(p31): ambtemp DT -1.14 2007-09-29 00:01:57 -1.12 2007-09-29 00:03:57 -1.33 2007-09-29 00:05:57 -1.44 2007-09-29 00:07:57 -1.54 2007-09-29 00

  • 我想用R随机构造自由度为5的卡方分布,有100个观测量。这样做之后,我想计算这些观测的平均值,并使用ggplot2用条形图绘制卡方分布。以下是我的代码: 首先,构造一个df=5,obs=100的随机卡方分布的数据帧。 但是,我得到的结果如下: 我被这个问题困了几个小时,在我的全局环境中找不到任何列表。如果有人能帮助我,给我一些建议,将不胜感激。

  • 我试图以编程方式批量添加WooCommerce中的产品,但出于某种原因,它只是添加了第一个产品。我正在向一个应用程序发出请求,该应用程序返回带有产品名称和描述的JSON响应。到目前为止,我的代码看起来像下面的代码:

  • 我想以编程方式在liferay中添加站点,因此我创建了一个负责以编程方式添加站点的portlet,但它不起作用,所以请任何人在这方面帮助我。当我单击create site is时,我得到的错误是。这是我的代码: &这是我的sites.java,它是一个操作文件: 我的日志文件是: