小编pus*_*t88的帖子

R:从概率密度分布生成数据

假设我有一个简单的数组,具有相应的概率分布.

library(stats)    
data <- c(0,0.08,0.15,0.28,0.90)
pdf_of_data <- density(data, from= 0, to=1, bw=0.1)
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用相同的分布生成另一组数据.由于操作是概率性的,它不再需要与初始分布完全匹配,而只是从它生成.

我确实成功地找到了一个简单的解决方案.谢谢!

random r probability-density

9
推荐指数
2
解决办法
5158
查看次数

从网络边缘排斥文本

绘制网络时,如果节点的标签也可以避开网络边缘,那将是很好的选择。例如,在下面的示例中,可以将所有标签移到网络外部。我已经尝试了几个软件包,但是到目前为止,还没有找到一种可行的方法。有办法吗?下面的例子:

library(ggraph)
library(tidygraph)
reprex <- tibble(to = sample(1:10, 100,replace=T),
                 from = sample(1:10, 100,replace=T)
                 ) %>%
  as_tbl_graph()
V(reprex)$label1 <- rep("label",10)

reprex_plot <- reprex %>%
  ggraph() +
  geom_node_point() +
  geom_edge_link(color="grey")+
  geom_node_text(aes(label=label1),repel=T,force=100)+
  theme_bw()

reprex_plot
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

visualization r graph-visualization ggrepel ggraph

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

Python:在异常时返回空值

我有一些Python的经验,但我从未使用try和except函数来捕获由于缺乏正式培训而导致的错误.

我正在从维基百科中提取一些文章.为此,我有一系列标题,其中一些标题或搜索结果最后没有.我希望页面检索功能只是跳过这几个名称并继续运行脚本.随后是可重现的代码.

import wikipedia
# This one works.
links = ["CPython"]
test = [wikipedia.page(link, auto_suggest=False) for link in links]
test = [testitem.content for testitem in test]
print(test)

#The sequence breaks down if there is no wikipedia page.
links = ["CPython","no page"]
test = [wikipedia.page(link, auto_suggest=False) for link in links]
test = [testitem.content for testitem in test]
print(test)
Run Code Online (Sandbox Code Playgroud)

运行它的库使用这样的方法.通常这将是非常糟糕的做法,但由于这仅用于一次性数据提取,我愿意更改库的本地副本以使其工作.编辑我现在包括完整的功能.

def page(title=None, pageid=None, auto_suggest=True, redirect=True, preload=False):
  '''
  Get a WikipediaPage object for the page with title `title` or the pageid …
Run Code Online (Sandbox Code Playgroud)

python try-catch wikipedia-api pywikibot

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

R可视化:地图上的合理排斥点(蜂拥?)

我正在尝试复制大约这样的地图。 描述

它描述了分布在一个区域中的少量物品(学校)。对于输入,我有一个区域地图,每个区域都有一个数字。我想将其分布在该地区周围的许多地方。如果它们不会跨区域边界扩散,那就更好了,但是仅将它们分布就足够了。在区域内一些良好的排斥点可能有效。

蜂巢图可以做的非常相似,可以在地图上完成。奖励问题-实际上,我一直在寻求动画效果,但是只能想到非常复杂的方法来实现,因此随着总和的增加,会增加新的积分。

下面的代码在地图上将点放置在质心中,并将数字作为大小。(我无法将地图正确导出为单个文件,因此坐标有些混乱,但是原理是相同的。)

places = st_read("https://gist.githubusercontent.com/peeter-t2/9646a4169e993948fa97f6f503a0688b/raw/cb4e910bf153e51e3727dc9d1c73dd9ef86d2556/kih1897m.geojson", stringsAsFactors = FALSE)

schools <- read_tsv("https://gist.github.com/peeter-t2/34467636b3c1017e89f33284d7907b42/raw/6ea7dd6c005ef8577b36f5e84338afcb6c76b707/school_nums.tsv")
schools_geo <- merge(places,schools,by.x="KIHELKOND",by.y="Kihelkond") #94 matches

p<- schools_geo %>% 
  ggplot()+
  geom_sf(data=schools_geo)+
  geom_sf(data=st_centroid(schools_geo),aes(size=value))+
  theme_bw()
p
Run Code Online (Sandbox Code Playgroud)

谢谢!

visualization r ggplot2 r-sf beeswarm

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