气泡图与线

时间:2017-11-28 18:26:23

标签: powerbi

Power BI中是否有可用的视觉效果可以让我创建一个如下所示的图表?我可以使用散点图创建气泡,但我不知道如何在它上面添加一条线。

Bubble Line Chart

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

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

2 个答案:

答案 0 :(得分:1)

如果不了解基础数据,您可以在此处将3个图表合并到一个网格中:气泡图,散点图和折线图。虽然不是一个不合理的设计,但我不知道任何单一的视觉效果(开箱即用或来自Office Store的现有自定义视觉效果)能够满足您创建上述精确图表的需求。

尽管如此,仍然有一些选择,其中没有一个是太棒了:

  1. 编写一个用于创建所需图表的R脚本,然后使用内置的R脚本可视化在Power BI中显示它。您可以在此处了解有关R视觉效果的更多信息:https://docs.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. 在创意论坛上提交一个新视觉的想法(如果你认为这是一个令人信服的理由,为什么你的特定视觉对更广泛的受众有价值,因为微软根据投票选择想法)。创意论坛:https://ideas.powerbi.com/forums/265200-power-bi-ideas
  5. 妥协或更改图表设计(例如,将图表分成2个或3个并排或找到在单个图表类型中显示数据的方法)。
  6. 在气泡图表上叠加折线图。使轴完美对齐将非常困难。当您更改视觉的属性(例如隐藏轴)时,它会更改主图表可用的空间量,这意味着它将抛弃对齐。但是,如果近似值足够好,这可能是一种选择。 (如果您计划将视觉固定到仪表板上,那么这样的分层并不是一个很好的解决方案。)
  7. 3 charts layered on top of each other 3个图表相互叠加:折线图和2个气泡图,所有图表都具有相同的固定比例。注意:对齐并不完美,我无法访问问题中使用的基础数据,因此值也是近似值。

    <强>建议

    就个人而言,我建议将R作为最佳下一步。它是一种非常灵活的编程语言,应该能够在内置和放大的内容中重新创建您想要的内容。支持的方式。 (究竟如何在R中重新创建它并不是我能回答的问题。)

答案 1 :(得分:1)

如果您愿意使用R,这肯定是可能的:

情节

enter image description here

还有一些细节需要保留(负y轴标签的X轴刻度线和红色字体颜色,将线放在气泡的前面,并调整气泡的大小),但如果这是您可以使用的东西。

只需导入以下数据集,插入R Visual,然后将以下代码段粘贴到R脚本编辑器中即可:

# 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

我只需要稍微更改一下数据集,因为我需要一种方法来识别进入线,气泡和十字线的数据:

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以使直线变直。

这是我完整的设置的样子:

enter image description here