我有一个函数,它可以运行一系列数据框架,每个数据框架都制作成它自己的信息图表,比较男性和女性在各种疾病上的风险率。例如,我们正在寻找的显示器是,如果我们有3.5女性对每1男性的风险率,那么它将显示1个男性图标和3个完整的女性图标,其中第四个女性图标填充一半。
以下是信息图的代码段,它一次接收一个带有列的 Dataframe :性别、价值观和路径(一个以上性别的性别如下:fenale,女2,女3...避免图标相互重叠)
#save graphic as object to call
infograph <- new_df %>%
#calling the genders into each graphic
e_charts(gender) %>%
e_x_axis(spliLine=list(show=FALSE),
axisTick = list(show=FALSE),
axisLine = list(show=FALSE),
axisLabel = list(show=FALSE)) %>%
e_y_axis(max = 100,
splitLine=list(show=FALSE),
axisTick=list(show=FALSE),
axisLine=list(show=FALSE),
axisLabel=list(show=FALSE)) %>%
#colors of icon (fill and background)
e_color(color=c('#69cce6', '#eee')) %>%
#fill icon
e_pictorial(value, symbol = path, z=10, name= 'realValue',
symbolBoundingData= 100, symbolClip= TRUE) %>%
#background icon
e_pictorial(value, symbol = path, name= 'background',
symbolBoundingData= 100) %>%
#currently show=FALSE, labels will hide
e_labels(position='bottom', offset=c(0,10), show=FALSE,
textStyle=list(fontSize=20, fontFamily = 'Arial',
fontWeight = 'bold',
color = '#69cce6'),
formatter = "{@[1]}% {@[0]}") %>%
#title of graph
e_title(text = paste(unique(this$Disease), " Infographic", sep=""), left = "center") %>%
#legend
e_legend(show=FALSE) %>%
#list exists online of themes to choose from
e_theme("westeros")
字符串
这里的目标是使男性图标为蓝色,女性图标为粉红色,以便于阅读。现在它只需要2种颜色,背景图标和填充图标的颜色。
注意:标签现在是隐藏的(show=FALSE),因为我不担心atm,所以忽略它。
我试着使用第四个“colors”列来赋值,但是color参数的读取方式和symbol读取当前行的路径的方式不同。我在分配e_color时使用了两种以上的颜色,但只使用了前两种颜色。
编辑:这个函数是用来遍历一个 Dataframe 列表的,但这里是我测试的一个。对不起,长的'路径'列,但这是必要的图标
gender value
1 Male 100
2 Female 1 100
3 Female 2 100
4 Female 3 100
5 Female portional 65.6652360515021
path
1 path://M20.822 18.096c-3.439-.794-6.64-1.49-5.09-4.418 4.72-8.912 1.251-13.678-3.732-13.678-5.082 0-8.464 4.949-3.732 13.678 1.597 2.945-1.725 3.641-5.09 4.418-3.073.71-3.188 2.236-3.178 4.904l.004 1h23.99l.004-.969c.012-2.688-.092-4.222-3.176-4.935z
2 path://M20.822 19.307c-2.967-.681-6.578-2.437-5.514-4.723.684 1.126 2.801 1.777 4.45.804-4.747-1.204 2.334-9.471-3.871-14.105-1.135-.853-2.526-1.283-3.912-1.283-1.378 0-2.751.425-3.862 1.283-6.206 4.634.876 12.901-3.872 14.105 1.649.974 3.77.293 4.451-.804 1.064 2.286-2.551 4.043-5.514 4.723-2.978.682-3.178 2.466-3.178 4.004l.005.689h23.99l.005-.691c0-1.537-.2-3.32-3.178-4.002z
3 path://M20.822 19.307c-2.967-.681-6.578-2.437-5.514-4.723.684 1.126 2.801 1.777 4.45.804-4.747-1.204 2.334-9.471-3.871-14.105-1.135-.853-2.526-1.283-3.912-1.283-1.378 0-2.751.425-3.862 1.283-6.206 4.634.876 12.901-3.872 14.105 1.649.974 3.77.293 4.451-.804 1.064 2.286-2.551 4.043-5.514 4.723-2.978.682-3.178 2.466-3.178 4.004l.005.689h23.99l.005-.691c0-1.537-.2-3.32-3.178-4.002z
4 path://M20.822 19.307c-2.967-.681-6.578-2.437-5.514-4.723.684 1.126 2.801 1.777 4.45.804-4.747-1.204 2.334-9.471-3.871-14.105-1.135-.853-2.526-1.283-3.912-1.283-1.378 0-2.751.425-3.862 1.283-6.206 4.634.876 12.901-3.872 14.105 1.649.974 3.77.293 4.451-.804 1.064 2.286-2.551 4.043-5.514 4.723-2.978.682-3.178 2.466-3.178 4.004l.005.689h23.99l.005-.691c0-1.537-.2-3.32-3.178-4.002z
5 path://M20.822 19.307c-2.967-.681-6.578-2.437-5.514-4.723.684 1.126 2.801 1.777 4.45.804-4.747-1.204 2.334-9.471-3.871-14.105-1.135-.853-2.526-1.283-3.912-1.283-1.378 0-2.751.425-3.862 1.283-6.206 4.634.876 12.901-3.872 14.105 1.649.974 3.77.293 4.451-.804 1.064 2.286-2.551 4.043-5.514 4.723-2.978.682-3.178 2.466-3.178 4.004l.005.689h23.99l.005-.691c0-1.537-.2-3.32-3.178-4.002z
fills
1 69cce6
2 hotpink
3 hotpink
4 hotpink
5 hotpink
型
不幸的是,由于HIPAA法律,我不能发布源 Dataframe ,但我只是从那个 Dataframe 中提取数据,并将其转换为代码中使用的new_df。
1条答案
按热度按时间4bbkushb1#
好的,我把你的数据放在一个数据框中,使你的例子可重复。
看看我做的改变。这个脚本的输出看起来像你想要的那样吗?
字符串