<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Extensions Help - D3Js.org in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515946#M1234928</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This line is returning an error, check it&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var x = d3.scale.ordinal()&lt;/P&gt;&lt;P&gt;&amp;nbsp; .domain(data.map(function(d) { return d.letter; }))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rangeRoundBands([0, width], .1);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Nov 2013 19:30:04 GMT</pubDate>
    <dc:creator>Clever_Anjos</dc:creator>
    <dc:date>2013-11-18T19:30:04Z</dc:date>
    <item>
      <title>Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515942#M1234924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #575757;"&gt;Hi guys,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #575757; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt; I recently decided to try get a better understanding of extensions and try to use some of the D3js.org stuff in my models. I have managed to get the basics of extensions sorted. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #575757;"&gt;&lt;SPAN style="color: #222222; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;However, after going through all the training manuals and examples on the web, I think I am really close, but seem to be missing something and I really don’t know what. I have attached a link to the example I am working on - trying to get a basic Bar Chart working… Would someone be able to take a look and see where I am going wrong, please?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #575757;"&gt;Thanks in advance. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="generated-link" data-jive-statusinputadd="true" data-jive-truncation-flag="true" href="https://www.dropbox.com/s/azocu37y83gqusx/barexample.zip" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; color: #3778c7;" target="_blank"&gt;Dropbox - barexample.zip&lt;SPAN style="color: #222222;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Jan 2026 16:26:21 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515942#M1234924</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2026-01-26T16:26:21Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515943#M1234925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Pretty please.... &lt;IMG src="https://community.qlik.com/legacyfs/online/emoticons/silly.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Nov 2013 13:57:15 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515943#M1234925</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-11-15T13:57:15Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515944#M1234926</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;//AJL: will need to make sure this is updated whenever the final extension is packaged.&amp;nbsp; I.E. the folder name will need to be whatever the final product name will be&lt;/P&gt;&lt;P&gt;var extensionName = "barexample";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var extensionPath = Qva.Remote + "?public=only&amp;amp;name=Extensions/" + extensionName +"/";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function barexample_Init() {&lt;/P&gt;&lt;P&gt;&amp;nbsp; var files = [];&lt;/P&gt;&lt;P&gt;&amp;nbsp; //if Can't resolve jQuery, then load it&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (typeof jQuery == 'undefined') {&lt;/P&gt;&lt;P&gt;&amp;nbsp; files.push(extensionPath + "jquery.js");&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Pushing js file names into files array&lt;/P&gt;&lt;P&gt;&amp;nbsp; files.push(extensionPath + "json2.js");&lt;/P&gt;&lt;P&gt;&amp;nbsp; files.push(extensionPath + "d3.v3.min.js");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //loading all the js files and then executing extension_Done&lt;/P&gt;&lt;P&gt;&amp;nbsp; Qv.LoadExtensionScripts(files, barexample_Done);}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function barexample_Done() {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Qva.AddExtension(extensionName, function () {&lt;/P&gt;&lt;P&gt;&amp;nbsp; Qva.LoadCSS(extensionPath + "style.css");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var _this = this;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp; //get first text box&lt;/P&gt;&lt;P&gt;// //var text1 = _this.Layout.Text0.text;&lt;/P&gt;&lt;P&gt;// var text1 = _this.Layout.Text0.text.toString();&lt;/P&gt;&lt;P&gt;// //get check box value&lt;/P&gt;&lt;P&gt;// var checkbox1 = _this.Layout.Text1.text.toString();&lt;/P&gt;&lt;P&gt;// var select = _this.Layout.Text2.text.toString();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //add a unique name to the extension in order to prevent conflicts with other extensions.&lt;/P&gt;&lt;P&gt;&amp;nbsp; //basically, take the object ID and add it to a DIV&lt;/P&gt;&lt;P&gt;&amp;nbsp; var divName = _this.Layout.ObjectId.replace("\\", "_");&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(_this.Element.children.length == 0) {//if this div doesn't already exist, create a unique div with the divName&lt;/P&gt;&lt;P&gt;&amp;nbsp; var ui = document.createElement("div");&lt;/P&gt;&lt;P&gt;&amp;nbsp; ui.setAttribute("id", divName);&lt;/P&gt;&lt;P&gt;&amp;nbsp; _this.Element.appendChild(ui);&lt;/P&gt;&lt;P&gt;&amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp; //if it does exist, empty the div so we can fill it again&lt;/P&gt;&lt;P&gt;&amp;nbsp; $("#" + divName).empty();&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; //ATN: The below 2 lines will show you a demo- writing HTML into the extension box.&lt;/P&gt;&lt;P&gt;&amp;nbsp; //var html = "test html";&lt;/P&gt;&lt;P&gt;&amp;nbsp; //$("#" + divName).html(html);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Data Elements&lt;/P&gt;&lt;P&gt;&amp;nbsp; var dataset = [];&lt;/P&gt;&lt;P&gt;&amp;nbsp; var textset = [];&lt;/P&gt;&lt;P&gt;&amp;nbsp; var data = _this.Data;&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (var f=0; f &amp;lt; data.Rows.length; f++ ) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; var row = data.Rows&lt;F&gt;;&lt;/F&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Dimension 1 : Defined in the Definition.xml&lt;/P&gt;&lt;P&gt;&amp;nbsp; var dim1 = row[0].text;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Dimension 2 : Defined in the Definition.xml&lt;/P&gt;&lt;P&gt;&amp;nbsp; var measure1 = row[1].text;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; letter = textset.concat(dim1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; frequency = dataset.concat(measure1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var margin = {top: 20, right: 20, bottom: 30, left: 40},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; width = 960 - margin.left - margin.right,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; height = 500 - margin.top - margin.bottom;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var formatPercent = d3.format(".0%");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var x = d3.scale.ordinal()&lt;/P&gt;&lt;P&gt;&amp;nbsp; .domain(data.map(function(d) { return d.letter; }))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rangeRoundBands([0, width], .1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var y = d3.scale.linear()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .domain([0, d3.max(data, function(d) { return d.frequency; })])&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .range([height, 0]);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var xAxis = d3.svg.axis()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .scale(x)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .orient("bottom");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var yAxis = d3.svg.axis()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .scale(y)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .orient("left")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .tickFormat(formatPercent);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var svg = d3.select("body").append("svg")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("width", width + margin.left + margin.right)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("height", height + margin.top + margin.bottom)&lt;/P&gt;&lt;P&gt;&amp;nbsp; .append("g")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("transform", "translate(" + margin.left + "," + margin.top + ")");&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; svg.append("g")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("class", "x axis")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("transform", "translate(0," + height + ")")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .call(xAxis);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; svg.append("g")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("class", "y axis")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .call(yAxis)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .append("text")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("transform", "rotate(-90)")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("y", 6)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("dy", ".71em")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .style("text-anchor", "end")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .text("Frequency");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; svg.selectAll(".bar")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .data(data)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .enter().append("rect")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("class", "bar")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("x", function(d) { return x(d.letter); })&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("width", x.rangeBand())&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("y", function(d) { return y(d.frequency); })&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("height", function(d) { return height - y(d.frequency); });&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function type(d) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; d.frequency = +d.frequency;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return d;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;});&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Call the initialization function&lt;/P&gt;&lt;P&gt;barexample_Init();&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Nov 2013 18:45:34 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515944#M1234926</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-11-18T18:45:34Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515945#M1234927</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So Steve, did you get it to work?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Nov 2013 19:29:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515945#M1234927</guid>
      <dc:creator>danielrozental</dc:creator>
      <dc:date>2013-11-18T19:29:28Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515946#M1234928</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This line is returning an error, check it&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var x = d3.scale.ordinal()&lt;/P&gt;&lt;P&gt;&amp;nbsp; .domain(data.map(function(d) { return d.letter; }))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rangeRoundBands([0, width], .1);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Nov 2013 19:30:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515946#M1234928</guid>
      <dc:creator>Clever_Anjos</dc:creator>
      <dc:date>2013-11-18T19:30:04Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515947#M1234929</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don´t know if this.Data exposes a "map" method, &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Nov 2013 19:33:15 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515947#M1234929</guid>
      <dc:creator>Clever_Anjos</dc:creator>
      <dc:date>2013-11-18T19:33:15Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515948#M1234930</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Clever. I am not sure what to check or change... The original script to fetch the data was like this...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE class="html xml" style="font-family: Menlo, monospace;"&gt;&amp;nbsp; d3.tsv(&lt;SPAN class="string" style="color: #756bb1;"&gt;"data.tsv"&lt;/SPAN&gt;, type, &lt;SPAN class="function"&gt;&lt;SPAN class="keyword" style="color: #3182bd;"&gt;function&lt;/SPAN&gt;&lt;SPAN class="params"&gt;(error, data)&lt;/SPAN&gt; {&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; x.domain(data.map(&lt;SPAN class="function"&gt;&lt;SPAN class="keyword" style="color: #3182bd;"&gt;function&lt;/SPAN&gt;&lt;SPAN class="params"&gt;(d)&lt;/SPAN&gt; {&lt;/SPAN&gt; &lt;SPAN class="keyword" style="color: #3182bd;"&gt;return&lt;/SPAN&gt; d.letter; }));&lt;BR /&gt;&amp;nbsp; y.domain([&lt;SPAN class="number" style="color: #31a354;"&gt;0&lt;/SPAN&gt;, d3.max(data, &lt;SPAN class="function"&gt;&lt;SPAN class="keyword" style="color: #3182bd;"&gt;function&lt;/SPAN&gt;&lt;SPAN class="params"&gt;(d)&lt;/SPAN&gt; {&lt;/SPAN&gt; &lt;SPAN class="keyword" style="color: #3182bd;"&gt;return&lt;/SPAN&gt; d.frequency; })]);&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That was to fetch data out of a .tsv file... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The &lt;A href="https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_domain"&gt;d3 API&lt;/A&gt; says this...&amp;nbsp; &lt;/P&gt;&lt;P style="margin-top: 15px; margin-bottom: 15px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 15px;"&gt;&lt;A href="https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_range" name="wiki-ordinal_range" style="color: #4183c4;"&gt;#&lt;/A&gt; ordinal.&lt;STRONG&gt;range&lt;/STRONG&gt;([&lt;EM&gt;values&lt;/EM&gt;])&lt;/P&gt;&lt;P style="margin-top: 15px; margin-bottom: 15px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 15px;"&gt;If &lt;EM&gt;values&lt;/EM&gt; is specified, sets the output range of the ordinal scale to the specified array of values. The first element in the domain will be mapped to the first element in &lt;EM&gt;values&lt;/EM&gt;, the second domain value to the second range value, and so on. If there are fewer elements in the range than in the domain, the scale will recycle values from the start of the range. If &lt;EM&gt;values&lt;/EM&gt; is not specified, this method returns the current output range.&lt;/P&gt;&lt;P style="margin-top: 15px; margin-bottom: 15px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 15px;"&gt;This method is intended for when the set of discrete output values is computed explicitly, such as a set of categorical colors. In other cases, such as determining the layout of an ordinal scatterplot or bar chart, you may find the &lt;A href="https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangePoints" style="color: #4183c4;"&gt;rangePoints&lt;/A&gt; or &lt;A href="https://github.com/mbostock/d3/wiki/Ordinal-Scales#wiki-ordinal_rangeBands" style="color: #4183c4;"&gt;rangeBands&lt;/A&gt; operators more convenient.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Nov 2013 07:37:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515948#M1234930</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-11-20T07:37:25Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515949#M1234931</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not yet... Will keep you posted..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Nov 2013 07:37:59 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515949#M1234931</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-11-20T07:37:59Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515950#M1234932</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Steve, Stefan Walther did a D3.js extension you should check it out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.qlikblog.at/2540/qliktip-qlikview-chart-extension-using-d3/" title="http://www.qlikblog.at/2540/qliktip-qlikview-chart-extension-using-d3/"&gt;Creating a QlikView Extension from Scratch using D3 (QlikTip #50)&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Nov 2013 14:02:43 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515950#M1234932</guid>
      <dc:creator>danielrozental</dc:creator>
      <dc:date>2013-11-20T14:02:43Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515951#M1234933</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey Steve, I actually wrote the original d3Bar example and just pushed a revised version to GitHub (&lt;A href="https://github.com/wallyflops/d3Graph" title="https://github.com/wallyflops/d3Graph"&gt;wallyflops/d3Graph · GitHub&lt;/A&gt;).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By looking at the code you posted, I can see that you are looping through and capturing information from _this.Data.Rows but you are never returning the data values to a parent object.&amp;nbsp; Later on, when you are referencing "data" it is still set to the parent object of&amp;nbsp; _this.Data, which the objects of letter or frequency would not exist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To make it clearer, check this portion of my script: &lt;A href="https://github.com/wallyflops/d3Graph/blob/master/d3Bar/Script.js#L60" title="https://github.com/wallyflops/d3Graph/blob/master/d3Bar/Script.js#L60"&gt;d3Graph/d3Bar/Script.js at master · wallyflops/d3Graph · GitHub&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Nov 2013 16:50:19 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515951#M1234933</guid>
      <dc:creator />
      <dc:date>2013-11-21T16:50:19Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515952#M1234934</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do you have the original working version?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 23 Nov 2013 19:10:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515952#M1234934</guid>
      <dc:creator>Clever_Anjos</dc:creator>
      <dc:date>2013-11-23T19:10:08Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515953#M1234935</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Steve,&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;I think this is your issue&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt; var data = _this.Data;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (var f=0; f &amp;lt; data.Rows.length; f++ ) {&lt;/P&gt;&lt;P&gt;var row = data.Rows&lt;F&gt;;&lt;/F&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Dimension 1 : Defined in the Definition.xml&lt;/P&gt;&lt;P&gt;&amp;nbsp; var dim1 = row[0].text;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //Dimension 2 : Defined in the Definition.xml&lt;/P&gt;&lt;P&gt;&amp;nbsp; var measure1 = row[1].text;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; letter = textset.concat(dim1);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; frequency = dataset.concat(measure1);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You are just looping through each Row and setting the vars: letter &amp;amp; frequency &lt;SPAN style="text-decoration: underline;"&gt;but&lt;/SPAN&gt; never return the values to a parent object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Whenever you reference the object &lt;STRONG&gt;data&lt;/STRONG&gt;, you are referencing the original data object and not your new vars of letter &amp;amp; frequency.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check out my other reply on this thread for additional detail.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Nov 2013 13:37:48 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515953#M1234935</guid>
      <dc:creator />
      <dc:date>2013-11-25T13:37:48Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515954#M1234936</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not a Qlikview one... I am trying to get &lt;A href="http://bl.ocks.org/mbostock/3885304"&gt;this Bar Chart&lt;/A&gt; working in Qlikview to help me get a better understanding of using D3Js charts in Extensions...&lt;/P&gt;&lt;P&gt;In his version, he is getting the data out of a .tsv file. I am trying to get the data out of Qlikview.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt;d3.tsv(&lt;/SPAN&gt;&lt;SPAN class="string" style="font-family: Menlo, monospace; color: #756bb1;"&gt;"data.tsv"&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt;, type, &lt;/SPAN&gt;&lt;SPAN class="function" style="font-family: Menlo, monospace; color: #3d3d3d;"&gt;&lt;SPAN class="keyword" style="font-style: inherit; font-family: inherit; color: #3182bd;"&gt;function&lt;/SPAN&gt;&lt;SPAN class="params" style="font-style: inherit; font-family: inherit;"&gt;(error, data)&lt;/SPAN&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt;&amp;nbsp; x.domain(data.map(&lt;/SPAN&gt;&lt;SPAN class="function" style="font-family: Menlo, monospace; color: #3d3d3d;"&gt;&lt;SPAN class="keyword" style="font-style: inherit; font-family: inherit; color: #3182bd;"&gt;function&lt;/SPAN&gt;&lt;SPAN class="params" style="font-style: inherit; font-family: inherit;"&gt;(d)&lt;/SPAN&gt; {&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="font-family: Menlo, monospace; color: #3182bd;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt; d.letter; }));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt;&amp;nbsp; y.domain([&lt;/SPAN&gt;&lt;SPAN class="number" style="font-family: Menlo, monospace; color: #31a354;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt;, d3.max(data, &lt;/SPAN&gt;&lt;SPAN class="function" style="font-family: Menlo, monospace; color: #3d3d3d;"&gt;&lt;SPAN class="keyword" style="font-style: inherit; font-family: inherit; color: #3182bd;"&gt;function&lt;/SPAN&gt;&lt;SPAN class="params" style="font-style: inherit; font-family: inherit;"&gt;(d)&lt;/SPAN&gt; {&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="font-family: Menlo, monospace; color: #3182bd;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: Menlo, monospace;"&gt; d.frequency; })]);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I moved the .domain lines that he had in the above script to the relevant axis (x. and y.). I am not sure what to replace the data.map() with if that doesn't work in my version.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Nov 2013 06:58:26 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515954#M1234936</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-11-26T06:58:26Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515955#M1234937</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Andrew. I think I am really close. I used your version to get the data:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Data Elements&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var row, letter, frequency = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var k, q;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var dataJson =[];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var data = _this.Data.Rows;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (q = 0, k = _this.Data.Rows.length; q &amp;lt; k; q++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = _this.Data.Rows&lt;Q&gt;;&lt;/Q&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataDimension = row[0].text;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataMeasure = parseFloat(row[1].text);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataJson.push({&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'letter':dataDimension,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'frequency':dataMeasure&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As I mentioned earlier to Clever, I moved the .domain lines to the relevant axis (.x and .y) but I must be doing something wrong... and not sure what it is. The original script on the web used &lt;SPAN style="font-family: Menlo, monospace; color: #3d3d3d;"&gt;x.domain(data.map(&lt;/SPAN&gt;&lt;SPAN class="function" style="font-family: Menlo, monospace; color: #3d3d3d;"&gt;&lt;SPAN class="keyword" style="font-style: inherit; font-family: inherit; color: #3182bd;"&gt;function&lt;/SPAN&gt;&lt;SPAN class="params" style="font-style: inherit; font-family: inherit;"&gt;(d)&lt;/SPAN&gt; {&lt;/SPAN&gt;&lt;SPAN style="font-family: Menlo, monospace; color: #3d3d3d;"&gt; &lt;/SPAN&gt;&lt;SPAN class="keyword" style="font-family: Menlo, monospace; color: #3182bd;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="font-family: Menlo, monospace; color: #3d3d3d;"&gt; d.letter; }));&lt;/SPAN&gt; to get the 'letter' for the x. axis - maybe data.map() isn't correct?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Nov 2013 07:23:45 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515955#M1234937</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-11-26T07:23:45Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515956#M1234938</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi guys,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I took Andrew's example and managed to get it working! Whoohoo... Thanks Andrew...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, I am not sure what to do to get the chart to be interactive i.e. so that I can highlight and make selections on the chart that affects selections in the model. I have attached the .qar file of the version I have working so far....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//AJL: will need to make sure this is updated whenever the final extension is packaged.&amp;nbsp; I.E. the folder name will need to be whatever the final product name will be&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var extensionName = "d3Bar";&lt;/P&gt;&lt;P&gt;var extensionPath = Qva.Remote + "?public=only&amp;amp;name=Extensions/" + extensionName +"/";&lt;/P&gt;&lt;P&gt;var loadPath =&amp;nbsp; Qva.Remote + (Qva.Remote.indexOf('?') &amp;gt;= 0 ? '&amp;amp;' : '?') + 'public=only' + '&amp;amp;name=';&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function Chart_Init(){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Qva.AddExtension('d3Bar', function () { &lt;/P&gt;&lt;P&gt;&amp;nbsp; var jsFiles = [];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var _this = this;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _this.ExtSettings = {};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(_this);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Qva.LoadCSS(loadPath + 'Extensions/d3Bar/css/style.css');&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(typeof jQuery == 'undefined'){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jsFiles.push('Extensions/d3Bar/js/jquery.js');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!Modernizr.svg) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jsFiles.push('Extensions/d3Bar/js/r2d3.min.js');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jsFiles.push('Extensions/d3Bar/js/d3.min.js');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function InitSettings() {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _this.ExtSettings.UniqueID = _this.Layout.ObjectId.replace('\\', '_');&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Init(){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(_this.Element).empty();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chartcontainer = document.createElement("div");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(chartcontainer).attr('id','Chart_'+_this.ExtSettings.UniqueID)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr('class','chart')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr('width','100%')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr('height','100%')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(_this.Element).append(chartcontainer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function InitChart() {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var row, dataDimension, dataMeasure = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var k, q;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var dataJson =[];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var data = _this.Data.Rows;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; for (q = 0, k = _this.Data.Rows.length; q &amp;lt; k; q++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = _this.Data.Rows&lt;Q&gt;;&lt;/Q&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataDimension = row[0].text;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataMeasure = parseFloat(row[1].text);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataJson.push({&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'id':dataDimension,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'data':dataMeasure&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;//--------------New Script Start-------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Chart dimensions.&lt;/P&gt;&lt;P&gt;var spacer = { right: 20 };&lt;/P&gt;&lt;P&gt;var margin = { top: 30, right: 50, bottom: 50, left: 30 };&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //{ top: 19.5, right: 19.5, bottom: 19.5, left: 39.5 },&lt;/P&gt;&lt;P&gt;var width = _this.GetWidth() - margin.right - spacer.right;&lt;/P&gt;&lt;P&gt;var height = _this.GetHeight() - margin.top - margin.bottom;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var x = d3.scale.ordinal()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .domain(dataJson.map(function(d) { return d.id; }))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .rangeRoundBands([0, width], .1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var y = d3.scale.linear()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .domain([0, d3.max(dataJson, function(d) { return d.data; })])&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .range([height, 0]);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var xAxis = d3.svg.axis()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .scale(x)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .orient("bottom");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var yAxis = d3.svg.axis()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .scale(y)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .orient("left")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ticks(10, "%");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var svg = d3.select('#Chart_'+_this.ExtSettings.UniqueID).append("svg")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("width", width + margin.left + margin.right)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("height", height + margin.top + margin.bottom)&lt;/P&gt;&lt;P&gt;&amp;nbsp; .append("g")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("transform", "translate(" + margin.left + "," + margin.top + ")");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; svg.append("g")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("class", "x axis")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("transform", "translate(0," + height + ")")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .call(xAxis);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; svg.append("g")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("class", "y axis")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .call(yAxis)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .append("text")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("transform", "rotate(-90)")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("y", 6)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("dy", ".71em")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .style("text-anchor", "end")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .text("Frequency");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; svg.selectAll(".bar")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .data(dataJson)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .enter().append("rect")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("class", "bar")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("x", function(d) { return x(d.id); })&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("width", x.rangeBand())&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("y", function(d) { return y(d.data); })&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .attr("height", function(d) { return height - y(d.data); });&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;function type(d) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; d.frequency = +d.frequency;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return d;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//--------------New Script End-------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Qv.LoadExtensionScripts(jsFiles, function () {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitSettings();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Init();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitChart();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;console.log(extensionPath);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Gotta load up the Modernizr library to see if the QV Desktop or browser can handle SVGs&lt;/P&gt;&lt;P&gt;//@todo AJL - Rework loading up the scripts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Qva.LoadScript(extensionPath + 'js/modernizr.svg.min.js', Chart_Init());&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Nov 2013 13:53:54 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515956#M1234938</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-11-28T13:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515957#M1234939</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a feeling that I need to use... &lt;STRONG style="color: #002ebe; font-family: 'Courier New', Courier, monospace;"&gt;SelectTextsInColumn&lt;/STRONG&gt;&lt;SPAN style="color: #002ebe; font-family: 'Courier New', Courier, monospace;"&gt;(Column, toggle, recordsToSelect)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just not sure how to get the array into&amp;nbsp; &lt;SPAN style="color: #002ebe; font-family: 'Courier New', Courier, monospace;"&gt;recordsToSelect &lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-family: tahoma, arial, helvetica, sans-serif;"&gt;by selecting bars on the chart.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can someone help me? Please... &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Dec 2013 16:38:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515957#M1234939</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-12-02T16:38:16Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515958#M1234940</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Your QAR isn't properly zipped.&amp;nbsp; When you zip the extension folder you need to zip the whole folder, not the contents.&amp;nbsp; As it is now, when you double click the QAR the extension doesn't install and your js and css directories are added to the root.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Dec 2013 16:47:18 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515958#M1234940</guid>
      <dc:creator>Brian_Munz</dc:creator>
      <dc:date>2013-12-02T16:47:18Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515959#M1234941</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To add clicking on the individual bars, you need to attach a click even to the cars.&amp;nbsp; For the code you've posted here, you would change your bar code to this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;svg.selectAll(".bar").data(dataJson).enter().append("rect").attr("class", "bar").attr("x", function(d) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; return x(d.id);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }).attr("width", x.rangeBand()).attr("y", function(d) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; return y(d.data);&lt;/P&gt;&lt;P&gt;&amp;nbsp; }).attr("height", function(d) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; return height - y(d.data);&lt;/P&gt;&lt;P&gt;&amp;nbsp; })&lt;STRONG&gt;.on("click",function(d){&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; _this.Data.SelectTextsInColumn(0, false, d.id);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; });&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The new code is bolded.&amp;nbsp; It takes the bar ID and selects it in QlikView.&amp;nbsp; In order to allow the selection of multiple bars you'd need to code some sort of ability to select multiple bars like a select box, lasso, etc.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Dec 2013 17:11:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515959#M1234941</guid>
      <dc:creator>Brian_Munz</dc:creator>
      <dc:date>2013-12-02T17:11:16Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515960#M1234942</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Oops. Thanks Brian.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Dec 2013 06:02:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515960#M1234942</guid>
      <dc:creator>wandapec</dc:creator>
      <dc:date>2013-12-03T06:02:01Z</dc:date>
    </item>
    <item>
      <title>Re: Extensions Help - D3Js.org</title>
      <link>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515961#M1234943</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Steve,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;d3Bar.qar file which you have shared is not working on my desktop version, can you please share the latest .qar file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Preethi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2014 12:42:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Extensions-Help-D3Js-org/m-p/515961#M1234943</guid>
      <dc:creator />
      <dc:date>2014-06-05T12:42:42Z</dc:date>
    </item>
  </channel>
</rss>

