首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带线气泡图

带线气泡图
EN

Stack Overflow用户
提问于 2017-11-28 18:26:23
回答 2查看 2.5K关注 0票数 1

在Power中有什么视觉效果可以让我创建这样的图表吗?我可以用散点图创建气泡,但我也不知道如何在上面画一条线。

这是使用以下数据产生的气泡,x标记,和线值,分别.

代码语言:javascript
复制
Label   Y     Weight  X
-------------------------
A      2.68%   30%   0.75
B      4.75%    4%   1.00
C     -1.37%   20%   0.68
D      3.69%   45%   0.30
E      3.02%   12%   0.62
F      0.00%    8%   0.00
-------------------------
X      2.33%         0.50
Y      4.30%         0.67
Z      3.65%         0.72
-------------------------
0      2.47%         0.00
0.95   4.46%         0.95
1      4.77%         1.00
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-10 11:04:43

如果您愿意使用R,这当然是可能的:

还有一些细节(X轴的刻痕和红色字体颜色用于负y轴标签,把线放在气泡前面,并调整气泡大小),但如果这是你可以使用的东西,我也会研究。

只需导入下面的数据集,插入一个snippet,并将以下代码片段粘贴到R脚本编辑器中:

代码语言:javascript
复制
# Setup
library(dplyr)
library(ggplot2)
df <- dataset
#############
# Data
#############
df1 <- df %>% filter(Category == 'b1')
df2 <- df %>% filter(Category == 'b2')
dfL <- df %>% filter(Category == 'line')

#############
# Chart setup
#############

# Line
plt <- ggplot(data = dfL,aes(x=X, y=Y)) + geom_line(color = 'green3', size = 1.1) + ylim(-0.02, 0.05)
plt <- plt + scale_y_continuous(labels=scales::percent, limits = c(-0.02, 0.055))
plt <- plt + geom_hline(yintercept=0., colour="grey50", lwd=0.5)
plt <- plt + geom_point(data = df1, aes(x=X, y=Y, size = log(Weight), stroke = 8), color = 'lightsteelblue2')

# Bubble 1
plt <- plt + geom_text(data = df1, aes(label=Label),hjust=0.5, vjust=0.5) 
plt <- plt + scale_size_continuous( trans="exp", range=c(1, 20))

# Bubble 2
plt <- plt + geom_point(data = df2, aes(x=X, y=Y), shape = 'x', size = 4.5, color = 'red') 
plt <- plt + geom_text(data = df2, aes(label=Label),hjust=-1, vjust=0.55, size = 4)

############
# Aesthetics
############

# Remove clutter
plt <- plt + theme_minimal()
plt <- plt + theme(legend.position="none")
plt <- plt + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())

# Axis format
plt <- plt + theme(axis.line.y = element_line(colour = "grey50"))
plt

我必须稍微修改一下您的数据集,因为我需要一种方法来识别哪些数据进入了行、气泡和交叉:

代码语言:javascript
复制
Category,Label,Y,Weight,X
b1,A,0.0268,0.30,0.75
b1,B,0.0475,0.04,1.00
b1,C,-0.0137,0.20,0.68
b1,D,0.0369,0.45,0.30
b1,E,0.0302,0.12,0.62
b1,F,0.00,0.08,0.00
b2,X,0.0233,,0.50
b2,Y,0.0430,,0.67
b2,Z,0.0365,,0.72
line,0,0.0247,,0.00
line,0.95,0.0446,,0.95
line,1,0.0477,,1.1

另外,我不得不用1,0.0477,,1.00代替1,0.0477,,1.1,使直线变得笔直。

这就是我的完整设置:

票数 1
EN

Stack Overflow用户

发布于 2017-12-18 18:46:19

在不了解底层数据的情况下,这里有三个图表合并到一个网格上:气泡图、散点图和线状图。虽然不是一个不合理的设计,但我不知道有任何一个视觉(开箱即用或来自Office的现有自定义可视化)将满足您创建上面的精确图表的需求。

尽管如此,还是有几种选择,没有一种是那么美妙的:

  1. 编写一个创建所需图表的R脚本,然后使用内置的R脚本可视化在Power中显示它。您可以在这里了解更多关于R可视化的信息:https://learn.microsoft.com/en-us/power-bi/desktop-r-visuals
  2. 构建您自己的自定义视觉,以满足您的需要(或聘请人员这样做)。这里有一个入门教程页面:https://github.com/Microsoft/PowerBI-visuals
  3. 投票赞成现有的想法,允许更灵活的组合图表时,轴是共享的。现有的想法(但在20个月内只吸引了18票):https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/13647567-custom-combination-chart-types
  4. 在idea论坛上提交一个新的视觉(如果您认为有一个令人信服的原因,您的特定的视觉将是有价值的更广泛的受众,因为微软选择的想法是基于投票)。创意论坛:https://ideas.powerbi.com/forums/265200-power-bi-ideas
  5. 妥协或改变你的图表设计(例如,将你的图表分割成2或3并排,或者找到一种方法在单一的图表类型中显示数据)。
  6. 在气泡图的顶部覆盖一条线状图。要使轴心完美地对齐是非常困难的。当您更改可视化的属性(例如隐藏一个轴)时,它会改变主图表可用的空间数量,这意味着它将放弃对齐。然而,如果近似足够好,这可能是一个选择。(不过,如果您计划将可视的信息绑定到仪表板上,那么这样的分层并不是一个好的解决方案。)

三个图表相互层叠:一个线状图和两个气泡图,都具有相同的固定比例。注意:对齐并不完美,而且我无法访问问题中使用的底层数据,因此这些值也是近似的。

Recommendation

就我个人而言,我建议探索R是下一个最好的步骤。这是一种非常灵活的编程语言,应该能够以内置和支持的方式重新创建所需的内容。(确切地说,如何在R中重新创建它不是我能回答的问题。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47538508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档