Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hello Power BI Community,
I need to replicate the following visual in Power BI that was created in Tableau. Can this same view be achieved?
Any suggestions would be greatly appreaciated.
Thanks
Kevin
Sample data:
User | Id_Question | Section_Name | Answer_Text | Answer_Numerical | Category |
1 | 12254 | Section 1 | Rating 3.5 | 3.5 | Rating current |
1 | 12255 | Section 1 | Rating 5 | 5 | Rating desired |
1 | 12262 | Section 2 | Rating 3.5 | 3.5 | Rating current |
1 | 12263 | Section 2 | Rating 4 | 4 | Rating desired |
1 | 12274 | Section 3 | Rating 3.5 | 3.5 | Rating current |
1 | 12273 | Section 3 | Rating 4 | 4 | Rating desired |
1 | 12282 | Section 4 | Rating 3 | 3 | Rating current |
1 | 12283 | Section 4 | Rating 4 | 4 | Rating desired |
1 | 12292 | Section 5 | Rating 3 | 3 | Rating current |
1 | 12293 | Section 5 | Rating 4 | 4 | Rating desired |
1 | 12302 | Section 6 | Rating 3 | 3 | Rating current |
1 | 12303 | Section 6 | Rating 4 | 4 | Rating desired |
1 | 12312 | Section 7 | Rating 3 | 3 | Rating current |
1 | 12313 | Section 7 | Rating 4 | 4 | Rating desired |
1 | 12322 | Section 8 | Rating 2.5 | 2.5 | Rating current |
1 | 12323 | Section 8 | Rating 4 | 4 | Rating desired |
1 | 12332 | Section 9 | Rating 3 | 3 | Rating current |
1 | 12333 | Section 9 | Rating 4 | 4 | Rating desired |
1 | 12332 | Section 10 | Rating 3.5 | 3.5 | Rating current |
1 | 12333 | Section 10 | Rating 3.5 | 3.5 | Rating desired |
Solved! Go to Solution.
Hi @Greg_Deckler,
I was able to work through this issue and found a solution to my challenge using the standard Scatter chart visual.
Based on the sample data I set I created the following calculated columns and measures.
Calculated column to map Id_Section starting with 1:
SectionMap =
IF(Survey[Id_Section] = 1000,1,
IF(Survey[Id_Section] = 1001,2,
IF(Survey[Id_Section] = 1002,3,
IF(Survey[Id_Section] = 1003,4,
IF(Survey[Id_Section] = 1004,5,
IF(Survey[Id_Section] = 1005,6,
IF(Survey[Id_Section] = 1006,7,
IF(Survey[Id_Section] = 1007,8,
IF(Survey[Id_Section] = 1008,9,
IF(Survey[Id_Section] = 1009,10,0))))))))))
Created a measure to return the first nonblank value to establish the y-axis:
SectionY = FIRSTNONBLANK(Survey[SectionMap],Survey[SectionMap])
Created a measure to return the minimum Answer_Numerical to establish the x-axis:
RatingRange = MIN(Survey[Answer_Numerical])
Flipped the y-axis order by multiplying the values by -1:
SectionYInverse = CALCULATE([SectionY]*-1)
Achieved this output by using the Scatter chart visual:
Sample data set used:
User | Id_Question | Id_Section | Section_Name | Answer_Text | Answer_Numerical | Category |
1 | 12254 | 1000 | Section 1 | Rating 3.5 | 3.5 | Rating current |
1 | 12255 | 1000 | Section 1 | Rating 5 | 5 | Rating desired |
1 | 12262 | 1001 | Section 2 | Rating 3.5 | 3.5 | Rating current |
1 | 12263 | 1001 | Section 2 | Rating 4 | 4 | Rating desired |
1 | 12274 | 1002 | Section 3 | Rating 3.5 | 3.5 | Rating current |
1 | 12273 | 1002 | Section 3 | Rating 4 | 4 | Rating desired |
1 | 12282 | 1003 | Section 4 | Rating 3 | 3 | Rating current |
1 | 12283 | 1003 | Section 4 | Rating 4 | 4 | Rating desired |
1 | 12292 | 1004 | Section 5 | Rating 3 | 3 | Rating current |
1 | 12293 | 1004 | Section 5 | Rating 4 | 4 | Rating desired |
1 | 12302 | 1005 | Section 6 | Rating 3 | 3 | Rating current |
1 | 12303 | 1005 | Section 6 | Rating 4 | 4 | Rating desired |
1 | 12312 | 1006 | Section 7 | Rating 3 | 3 | Rating current |
1 | 12313 | 1006 | Section 7 | Rating 4 | 4 | Rating desired |
1 | 12322 | 1007 | Section 8 | Rating 2.5 | 2.5 | Rating current |
1 | 12323 | 1007 | Section 8 | Rating 4 | 4 | Rating desired |
1 | 12332 | 1008 | Section 9 | Rating 3 | 3 | Rating current |
1 | 12333 | 1008 | Section 9 | Rating 4 | 4 | Rating desired |
1 | 12332 | 1009 | Section 10 | Rating 3.5 | 3.5 | Rating current |
1 | 12333 | 1009 | Section 10 | Rating 3.5 | 3.5 | Rating desired |
Hope this is helpful for the community!
Thanks
Kevin
To the best of my knowledge, you are not going to get there with any default visualizations. You will need to explore custom visualizations from the Store (although I did not see anything obvious) or R visualizations. It is almost like a cross between a Matrix visualization and a Scatter Chart visualization.
If the Scatter Chart visualization allowed a non-numeric y-axis it might get you there, but it does not.
Hi @Greg_Deckler,
Thank you for the response.
I explored custom visualizations without much luck but have made some progress with the Enhanced Scatter which allows for custom markers (image URLs and shapes). My data set does contain Id_Section associated with the Section_Name, which is numerical, so I'm working with those values as the y-axis. It's more of a trial and error process at the moment.
Unsure if I should be using the FIRSTNONBLANK function or not for the following.
Created a measure for the y-axis:
SectionY = FIRSTNONBLANK(Survey[Id_Section],(Survey[Id_Section])
Created a measure based on the Answer_Numerical column for the x-axis (attempting to get a scale from 1 to 5 with .5 increments):
RatingRange = FIRSTNONBLANK(Survey[Answer_Numerical],Survey[Answer_Numerical])
Any suggestions on the x and y axis values are welcomed.
If I'm unable to get a scatter plot to work then R visualizations are next or find a new way to represent the data.
Thanks again,
Kevin
Hi @Greg_Deckler,
I was able to work through this issue and found a solution to my challenge using the standard Scatter chart visual.
Based on the sample data I set I created the following calculated columns and measures.
Calculated column to map Id_Section starting with 1:
SectionMap =
IF(Survey[Id_Section] = 1000,1,
IF(Survey[Id_Section] = 1001,2,
IF(Survey[Id_Section] = 1002,3,
IF(Survey[Id_Section] = 1003,4,
IF(Survey[Id_Section] = 1004,5,
IF(Survey[Id_Section] = 1005,6,
IF(Survey[Id_Section] = 1006,7,
IF(Survey[Id_Section] = 1007,8,
IF(Survey[Id_Section] = 1008,9,
IF(Survey[Id_Section] = 1009,10,0))))))))))
Created a measure to return the first nonblank value to establish the y-axis:
SectionY = FIRSTNONBLANK(Survey[SectionMap],Survey[SectionMap])
Created a measure to return the minimum Answer_Numerical to establish the x-axis:
RatingRange = MIN(Survey[Answer_Numerical])
Flipped the y-axis order by multiplying the values by -1:
SectionYInverse = CALCULATE([SectionY]*-1)
Achieved this output by using the Scatter chart visual:
Sample data set used:
User | Id_Question | Id_Section | Section_Name | Answer_Text | Answer_Numerical | Category |
1 | 12254 | 1000 | Section 1 | Rating 3.5 | 3.5 | Rating current |
1 | 12255 | 1000 | Section 1 | Rating 5 | 5 | Rating desired |
1 | 12262 | 1001 | Section 2 | Rating 3.5 | 3.5 | Rating current |
1 | 12263 | 1001 | Section 2 | Rating 4 | 4 | Rating desired |
1 | 12274 | 1002 | Section 3 | Rating 3.5 | 3.5 | Rating current |
1 | 12273 | 1002 | Section 3 | Rating 4 | 4 | Rating desired |
1 | 12282 | 1003 | Section 4 | Rating 3 | 3 | Rating current |
1 | 12283 | 1003 | Section 4 | Rating 4 | 4 | Rating desired |
1 | 12292 | 1004 | Section 5 | Rating 3 | 3 | Rating current |
1 | 12293 | 1004 | Section 5 | Rating 4 | 4 | Rating desired |
1 | 12302 | 1005 | Section 6 | Rating 3 | 3 | Rating current |
1 | 12303 | 1005 | Section 6 | Rating 4 | 4 | Rating desired |
1 | 12312 | 1006 | Section 7 | Rating 3 | 3 | Rating current |
1 | 12313 | 1006 | Section 7 | Rating 4 | 4 | Rating desired |
1 | 12322 | 1007 | Section 8 | Rating 2.5 | 2.5 | Rating current |
1 | 12323 | 1007 | Section 8 | Rating 4 | 4 | Rating desired |
1 | 12332 | 1008 | Section 9 | Rating 3 | 3 | Rating current |
1 | 12333 | 1008 | Section 9 | Rating 4 | 4 | Rating desired |
1 | 12332 | 1009 | Section 10 | Rating 3.5 | 3.5 | Rating current |
1 | 12333 | 1009 | Section 10 | Rating 3.5 | 3.5 | Rating desired |
Hope this is helpful for the community!
Thanks
Kevin
User | Count |
---|---|
128 | |
109 | |
100 | |
65 | |
62 |
User | Count |
---|---|
137 | |
115 | |
102 | |
71 | |
61 |