Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Is there any way to define the user defined bin sizes in Histogram?
For example I have a field called Product size that has data varying from 0 to 5000.I want to be able to divide the bins as:
<100, 100-300, 300-500 and 500+ for the histogram. If I define the custom bin size as 4, it automatically divide it into bin sizes with equal number of intervals. I want to be able to define the sizes as above. How do I do that?
Solved! Go to Solution.
Hi @lvanam,
Based on my research, we can only specify Bins with specific positive integrate values to divide with equal range. It’s not supported to custom different ranges for each column in Histogram visual currently. I would suggest you send feedback to Power BI Custom Visuals Support alias: pbicvsupport@microsoft.com.
Meanwhile, you can work around the issue use “Stacked column chart”, below is the sample:
Data table: Name, Amount(0~5000)
Add a measure to calculate the range of amount.
Range = var temp= SUM(Sheet1[Amount]) return if(temp<=100,"less than 100",if(AND(temp>100,temp<=300),"more than 100 and less than 300",if(AND(temp>300,temp<=500),"more than 300 and less than 500","more than 500")))
add a calculate column to store the “range” and create a “Stacked column chart” visual to show the result.
Regards,
Xiaoxin Sheng
You can use a custom visual to dynamically determine bin sizes. Either specify a number of bins or the size of each bin.
Nvm I got through. I used a column instead of a measure and removed the sum aggregation.
Hi @lvanam,
Based on my research, we can only specify Bins with specific positive integrate values to divide with equal range. It’s not supported to custom different ranges for each column in Histogram visual currently. I would suggest you send feedback to Power BI Custom Visuals Support alias: pbicvsupport@microsoft.com.
Meanwhile, you can work around the issue use “Stacked column chart”, below is the sample:
Data table: Name, Amount(0~5000)
Add a measure to calculate the range of amount.
Range = var temp= SUM(Sheet1[Amount]) return if(temp<=100,"less than 100",if(AND(temp>100,temp<=300),"more than 100 and less than 300",if(AND(temp>300,temp<=500),"more than 300 and less than 500","more than 500")))
add a calculate column to store the “range” and create a “Stacked column chart” visual to show the result.
Regards,
Xiaoxin Sheng
I am trying to implement this solution but the Range is not adding to visuals except in the tool tip field. Power BI is not allowing me to add it to the Axis field of the visual.
Hi Xiaoxin,
I've just implemented your solution and it worked great, thank you! I have a follow-up question: one of my bins isn't displaying on my graph's axis, because it has no data that falls into that bin. Is there a way to modify the DAX formula to have that bin appear? (I'm a relative newbie to DAX formulas, though have had some experience iwth Excel).
Many thanks in advance,
Scotty.
I did a similar thing today for different bins for 1-5,6-10,11-20, 21-30. I got the order as 21-30,1-5,11-20,6-10 on the x-axis. I need the above order. How do I get it?
@v-shex-msft @BhaveshPatel @Seth_C_Bauer @ankitpatira @v-haibl-msft @Baskar
Thank you in advance.
Hi Ivan ,
I Think u got the answer , great 🙂
Try this too it will help u to understand the flow without complex If.
Measure or column = Order
Example :
Bins = Switch ( True(),
And( Order >1,order < 5) , "1-5",
And( Order >=6,order < 10) , "6-10",
And( Order >= 10 1,order < 20 ) , "11-20",
And( Order >=21,order < 30) , "21-3"
)
Cheers dude !!!
@Baskar Your suggestion worked for me but getting same issue as other users regarding the bins order. Not clear how I can change order to go from small to large ( I have sorted the bins columns ASC in the table but it didn't reflect on the chart). Can anyone help?
Thanks
Managed to solve it now by following this thread
https://community.powerbi.com/t5/Desktop/Custom-Sorting-in-PowerBI/td-p/126534
I can't get u clearly :-(,
If my assumption , after the result u want to show the range in proper order like Asc or Desc ? if yes
i have to create one more column with order number based on Range Output
Hi @Baskar
I created another column similar to Range (measure) and I gave the values such as 1,2,3,4. The idea is to sort the prior range column with Range1 column. RangeSort = var temp= SUM(Query2[Age]) return Switch(True(),AND(temp>=6,temp<6),"1",AND(temp>=6,temp<11),"2",AND(temp>=16,temp<31),"4",AND(temp>=31,temp<61),"5",AND(temp>=61,temp<121),"6",AND(temp>=121,temp<10000),"7")
I now get an error message "Circular dependency was detected between RangeSort1, Range1, Rangesort1 😞
Did any one got any solution for sorting the range as required? I am also facing the same problem as @lvanam mentioned. My range is coming >14, 0-1, 2-7, 8-14 whereas I need it like >14, 8-14, 2-7, 0-1.
This is a great solution and a quick way to get to have a brush function in a histogram connect to a scatterplot.
So the process looks like:
1. Create the Range variable based on the Range = var temp = ... from above with appropriate bin values
2. Create a NewRange = Calculate (TableX[Range])
3. Create the Stacked bar with a Count of Name {or another field in your data table--I could use Count (Distinct)} by NewRange
This looks like it will only work for one variable in your table or you end up with a circular reference, no?
Is there any way to define the user defined bin sizes in Histogram?
For example I have a field called Product size that has data varying from 0 to 5000.I want to be able to divide the bins as:
<100, 100-300, 300-500 and 500+ for the histogram. If I define the custom bin size as 4, it automatically divide it into bin sizes with equal number of intervals. I want to be able to define the sizes as above. How do I do that?
User | Count |
---|---|
124 | |
108 | |
99 | |
62 | |
62 |
User | Count |
---|---|
137 | |
115 | |
102 | |
71 | |
61 |