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

Score big with last-minute savings on the final tickets to FabCon Vienna. Secure your discount

Reply
freginier
Super User
Super User

Create new D3js visual

Hi all, 

 

I'm trying to create a new visual with D3JSVisual in power bi. The code bellow work with the dataset1 and dataset2 do you know how can I put power bi data on these dataset... ? Maybe not the good way ?  

I know I have to use pbi.dsv() function but I don't know how... 

 

Thank you ! 

 

      (function(d3) {
        'use strict';

        var dataset1 = [
          { count: 10 }, 
          { count: 20 },
          { count: 30 },
          { count: 40 }
        ];
        
        var dataset2 = [
          { count: 10 }, 
          { count: 40 }, 
          { count: 30 },
          { count: 40 }
        ];

        var width = 400;
        var height = 400;
        var donutWidth = 75;
        var radius1 = Math.min(width, height) / 2;
        var radius2 = radius1 - donutWidth;
        
        var color1 = d3.scale.category20();
        var color2 = d3.scale.category20c();

        var svg = d3.select('#chart')
          .append('svg')
          .attr('width', width)
          .attr('height', height);
        var svg1 = svg.append('g')
          .attr('transform', 'translate(' + (width / 2) + 
            ',' + (height / 2) + ')');
        var svg2 = svg.append('g')
          .attr('transform', 'translate(' + (width / 2) + 
            ',' + (height / 2) + ')');

        var arc1 = d3.svg.arc()
          .innerRadius(radius1 - donutWidth)  
          .outerRadius(radius1);
        var arc2 = d3.svg.arc()
          .innerRadius(radius2 - donutWidth)  
          .outerRadius(radius2);
          
        var pie = d3.layout.pie()
          .value(function(d) { return d.count; })
          .sort(null);

        var path1 = svg1.selectAll('path')
          .data(pie(dataset1))
          .enter()
          .append('path')
          .attr('d', arc1)
          .attr('fill', function(d, i) { 
            return color1(i);
          });
        var path2 = svg2.selectAll('path')
          .data(pie(dataset2))
          .enter()
          .append('path')
          .attr('d', arc2)
          .attr('fill', function(d, i) { 
            return color2(i);
          });

      })(window.d3);

 

0 REPLIES 0

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

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

Top Solution Authors