我有一个包含以下数据的 csv:
world,country,state
World,US,CA
World,US,NJ
World,INDIA,OR
World,INDIA,AP
Run Code Online (Sandbox Code Playgroud)
我需要转换为树层次结构,如下所示:
{
"name": "World",
"children": [
{ "name": "US",
"children": [
{ "name": "CA" },
{ "name": "NJ" }
]
},
{ "name": "INDIA",
"children": [
{ "name": "OR" },
{ "name": "TN" }
]
}
Run Code Online (Sandbox Code Playgroud)
] };
使用 d3.nest 我只能得到一个 json 数组,而不是一棵名为“children”的树。我还需要做些什么吗?阅读 API 并没有真正的帮助,而且我在搜索的任何地方都找不到进行转换的代码片段。
是否有可视化格式显示数据中类别的重叠比例,但比维恩图更精确?此外,维恩图通常用于显示2或3个类别,而不仅仅是令人困惑的类别.
堆积条,瀑布等可以显示每个类别的比例,但假设这些类别之间没有重叠.
那么对于重叠类别,显示其比例的最佳方式是什么,包括与另一类别重叠的比例?
如何将此统计摘要图中的上下点更改为25%四分位数和75%四分位数?
ggplot(data = diamonds) + stat_summary(
mapping = aes(x = cut, y = depth),
fun.ymin = min,
fun.ymax = max,
fun.y = median
Run Code Online (Sandbox Code Playgroud)
)
在 中ggraph,如果绘图是径向的,则无论repel=T是否使用,标签都会变得拥挤。
有没有办法使标签具有交互性或允许旋转图形以读取标签?
library(ggraph)
mtcarsDen <- as.dendrogram(hclust(dist(mtcars[1:4], method='euclidean'),
method='ward.D2'))
ggraph(graph = mtcarsDen, layout = 'dendrogram', repel = TRUE, circular = TRUE,
ratio = 0.5) +
geom_edge_elbow() +
geom_node_text(aes(x = x*1.05, y=y*1.05, filter=leaf,
angle = node_angle(x, y), label = label),
size=3, hjust='outward') +
geom_node_point(aes(filter=leaf)) +
coord_fixed() +
ggforce::theme_no_axes()
Run Code Online (Sandbox Code Playgroud) 我正在探索visNetwork,无法弄清楚为什么这个不显示边缘
library(visNetwork)
nodes=data.frame(node=c('m1','m2','n1','n2'))
a=data.frame(x=c('n1','n2'),y=c('m1','m2'))
links=a%>% group_by(x,y)%>%tally()
visNetwork(nodes, links)
Run Code Online (Sandbox Code Playgroud) 我有一个这样的填充条形图
library(dplyr)
library(ggplot2)
df <- data.frame(facet=c(rep(1,6),rep(2,6)),type=rep(c('a','b','c'),2), subtype=c('x','y'), value=c(10,20,30,10,50,70))
df %>% group_by(type, facet) %>%
mutate(pct=value/sum(value)) %>%
mutate(pos=cumsum(pct) - (0.5 * pct)) %>%
ggplot(aes(type, pct, fill=subtype)) + geom_bar(stat='identity') +
geom_text(aes(label=paste0(round(100*pct, 0), '%'),y=pos)) + facet_grid(.~facet, margins=TRUE)
Run Code Online (Sandbox Code Playgroud)
如果没有在整像中显示总数就可以了.但是由于用于显示%data标签的方法(我想知道是否有更好的方法),总方面会搞砸.任何建议?谢谢.
对于不同的值,默认情况下,seaborn似乎在暖色调(橙色)中显示大数字,在冷色调(蓝色)中显示小数字.
如果我需要将颜色切换到相反的颜色,要显示蓝色和橙色的大数字,怎么办?
我搜索过但还没有找到方法.
sns.heatmap(flights, center=flights.loc["January", 1955])
Run Code Online (Sandbox Code Playgroud) 我正在R中使用dplyr进行简单的操作,并出现“期望单个值”错误
test <- data.frame(a=rep("item",3),b=c("step1","step2","step3"))
test%>%group_by(a)%>%(summarize(seq=paste0(b))
Run Code Online (Sandbox Code Playgroud)
我见过类似的线程,但是那些用例更加复杂,我不知道为什么这两行不起作用。
我有这样的输入
txt='.A3 S3- D4(SPACE) D5/ E9R E0&'
Run Code Online (Sandbox Code Playgroud)
如何提取匹配1个字母+ 1个数字的所有模式.可以在之前或之后或两者之间使用标点符号(除了&)或空格,但不允许使用之前或之后的另一个字母.
预期的匹配是:
['A3', 'S3', 'D4', 'D5']
Run Code Online (Sandbox Code Playgroud)
E9R将不会被退回,因为它包含E9之后的一封信.E0&将不会返回,因为它包含&
import re
re.findall('[a-z]{2,3}[0-9]{1,3}',txt)
Run Code Online (Sandbox Code Playgroud) 对于这个简单的枢轴,如何将值转换为行的百分比,以及列的百分比?
import pandas as pd
df = pd.DataFrame({'A' : ['one', 'one', 'two', 'three'] * 3,
'B' : ['A', 'B', 'C'] * 4,
'C' : range(12)})
pd.pivot_table(df, index='A', columns='B', aggfunc=sum)
Run Code Online (Sandbox Code Playgroud)
不知何故,经过一番搜索,我没有找到这个简单问题的答案。
预期结果(如果获得列的百分比)
A B C
ONE 50% 24% 50%
THREE 13% 31% 42%
TWO 36% 45% 8%
Run Code Online (Sandbox Code Playgroud)
谢谢
r ×5
ggplot2 ×3
python ×3
bar-chart ×1
colors ×1
d3.js ×1
dataframe ×1
dplyr ×1
facet-grid ×1
ggforce ×1
ggraph ×1
graph ×1
heatmap ×1
javascript ×1
pandas ×1
percentage ×1
pivot ×1
plot ×1
regex ×1
seaborn ×1
statistics ×1
tree ×1
visnetwork ×1