Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
kevcurtis
Advocate I
Advocate I

How to achieve this Tableau visual in Power BI?

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

 

Tableau visual with stacked & transparent shapesTableau visual with stacked & transparent shapes

Sample data:

 

UserId_QuestionSection_NameAnswer_TextAnswer_NumericalCategory
112254Section 1Rating 3.53.5Rating current
112255Section 1Rating 55Rating desired
112262Section 2Rating 3.53.5Rating current
112263Section 2Rating 44Rating desired
112274Section 3Rating 3.53.5Rating current
112273Section 3Rating 44Rating desired
112282Section 4Rating 33Rating current
112283Section 4Rating 44Rating desired
112292Section 5Rating 33Rating current
112293Section 5Rating 44Rating desired
112302Section 6Rating 33Rating current
112303Section 6Rating 44Rating desired
112312Section 7Rating 33Rating current
112313Section 7Rating 44Rating desired
112322Section 8Rating 2.52.5Rating current
112323Section 8Rating 44Rating desired
112332Section 9Rating 33Rating current
112333Section 9Rating 44Rating desired
112332Section 10Rating 3.53.5Rating current
112333Section 10Rating 3.53.5Rating desired
1 ACCEPTED 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:

Assessment ratings_solution.png

 

Sample data set used:

 

UserId_QuestionId_SectionSection_NameAnswer_TextAnswer_NumericalCategory
1122541000Section 1Rating 3.53.5Rating current
1122551000Section 1Rating 55Rating desired
1122621001Section 2Rating 3.53.5Rating current
1122631001Section 2Rating 44Rating desired
1122741002Section 3Rating 3.53.5Rating current
1122731002Section 3Rating 44Rating desired
1122821003Section 4Rating 33Rating current
1122831003Section 4Rating 44Rating desired
1122921004Section 5Rating 33Rating current
1122931004Section 5Rating 44Rating desired
1123021005Section 6Rating 33Rating current
1123031005Section 6Rating 44Rating desired
1123121006Section 7Rating 33Rating current
1123131006Section 7Rating 44Rating desired
1123221007Section 8Rating 2.52.5Rating current
1123231007Section 8Rating 44Rating desired
1123321008Section 9Rating 33Rating current
1123331008Section 9Rating 44Rating desired
1123321009Section 10Rating 3.53.5Rating current
1123331009Section 10Rating 3.53.5Rating desired

 

Hope this is helpful for the community!

 

Thanks

Kevin

View solution in original post

3 REPLIES 3
Greg_Deckler
Super User
Super User

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.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

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:

Assessment ratings_solution.png

 

Sample data set used:

 

UserId_QuestionId_SectionSection_NameAnswer_TextAnswer_NumericalCategory
1122541000Section 1Rating 3.53.5Rating current
1122551000Section 1Rating 55Rating desired
1122621001Section 2Rating 3.53.5Rating current
1122631001Section 2Rating 44Rating desired
1122741002Section 3Rating 3.53.5Rating current
1122731002Section 3Rating 44Rating desired
1122821003Section 4Rating 33Rating current
1122831003Section 4Rating 44Rating desired
1122921004Section 5Rating 33Rating current
1122931004Section 5Rating 44Rating desired
1123021005Section 6Rating 33Rating current
1123031005Section 6Rating 44Rating desired
1123121006Section 7Rating 33Rating current
1123131006Section 7Rating 44Rating desired
1123221007Section 8Rating 2.52.5Rating current
1123231007Section 8Rating 44Rating desired
1123321008Section 9Rating 33Rating current
1123331008Section 9Rating 44Rating desired
1123321009Section 10Rating 3.53.5Rating current
1123331009Section 10Rating 3.53.5Rating desired

 

Hope this is helpful for the community!

 

Thanks

Kevin

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.