How to import and use D3-tube-map in react.js











up vote
1
down vote

favorite












I have imported tube-map from d3.js in my reactjs project. But getting the following issue for not importing it properly. The issue I'm getting is shown in below sceenshot:



enter image description here



Following is the code I'm using. I've installed d3-tube-map using npm. Maybe I'm lacking on properly importing the exported value of d3-tube-map. Any help about this issue?



import React, { Component } from "react";
// import d3 from "d3";
import d3 from "d3-tube-map";
import "d3-tip";
import tubeData from "./JSON/tube_data.jsx";

class TubeMap extends Component {
componentDidMount() {
var container = d3.select("#tube_map_101");
var width = 700;
var height = 400;

var map = d3
.tubeMap()
.width(width)
.height(height)
.margin({
top: 20,
right: 20,
bottom: 40,
left: 100
})
.on("click", function(name) {
console.log(name);
});

// d3.json("./stations.json", function (error, data) {
container.datum(tubeData).call(map);

var svg = container.select("svg");

zoom = d3
.zoom()
.scaleExtent([0.5, 6])
.on("zoom", zoomed);

var zoomContainer = svg.call(zoom);
var initialScale = 2;
var initialTranslate = [100, 200];

zoom.scaleTo(zoomContainer, initialScale);
zoom.translateTo(
zoomContainer,
initialTranslate[0],
initialTranslate[1]
);

function zoomed() {
svg.select("g").attr("transform", d3.event.transform.toString());
}
// });
}

render() {
return <div id="tube_map_101" />;
}
}

export default TubeMap;









share|improve this question






















  • What is the reason of deleting your question from 2018-11-16 09:33:17Z stackoverflow.com/questions/53334987/… and posting the same question 30 hours later at 2018-11-17 14:35:40Z? This is the 3rd time you post the same question
    – rioV8
    Nov 17 at 16:57












  • Because I wanted a solution and there might be a lack of noticing questions here i don't know why.
    – Subhojit
    Nov 17 at 17:01















up vote
1
down vote

favorite












I have imported tube-map from d3.js in my reactjs project. But getting the following issue for not importing it properly. The issue I'm getting is shown in below sceenshot:



enter image description here



Following is the code I'm using. I've installed d3-tube-map using npm. Maybe I'm lacking on properly importing the exported value of d3-tube-map. Any help about this issue?



import React, { Component } from "react";
// import d3 from "d3";
import d3 from "d3-tube-map";
import "d3-tip";
import tubeData from "./JSON/tube_data.jsx";

class TubeMap extends Component {
componentDidMount() {
var container = d3.select("#tube_map_101");
var width = 700;
var height = 400;

var map = d3
.tubeMap()
.width(width)
.height(height)
.margin({
top: 20,
right: 20,
bottom: 40,
left: 100
})
.on("click", function(name) {
console.log(name);
});

// d3.json("./stations.json", function (error, data) {
container.datum(tubeData).call(map);

var svg = container.select("svg");

zoom = d3
.zoom()
.scaleExtent([0.5, 6])
.on("zoom", zoomed);

var zoomContainer = svg.call(zoom);
var initialScale = 2;
var initialTranslate = [100, 200];

zoom.scaleTo(zoomContainer, initialScale);
zoom.translateTo(
zoomContainer,
initialTranslate[0],
initialTranslate[1]
);

function zoomed() {
svg.select("g").attr("transform", d3.event.transform.toString());
}
// });
}

render() {
return <div id="tube_map_101" />;
}
}

export default TubeMap;









share|improve this question






















  • What is the reason of deleting your question from 2018-11-16 09:33:17Z stackoverflow.com/questions/53334987/… and posting the same question 30 hours later at 2018-11-17 14:35:40Z? This is the 3rd time you post the same question
    – rioV8
    Nov 17 at 16:57












  • Because I wanted a solution and there might be a lack of noticing questions here i don't know why.
    – Subhojit
    Nov 17 at 17:01













up vote
1
down vote

favorite









up vote
1
down vote

favorite











I have imported tube-map from d3.js in my reactjs project. But getting the following issue for not importing it properly. The issue I'm getting is shown in below sceenshot:



enter image description here



Following is the code I'm using. I've installed d3-tube-map using npm. Maybe I'm lacking on properly importing the exported value of d3-tube-map. Any help about this issue?



import React, { Component } from "react";
// import d3 from "d3";
import d3 from "d3-tube-map";
import "d3-tip";
import tubeData from "./JSON/tube_data.jsx";

class TubeMap extends Component {
componentDidMount() {
var container = d3.select("#tube_map_101");
var width = 700;
var height = 400;

var map = d3
.tubeMap()
.width(width)
.height(height)
.margin({
top: 20,
right: 20,
bottom: 40,
left: 100
})
.on("click", function(name) {
console.log(name);
});

// d3.json("./stations.json", function (error, data) {
container.datum(tubeData).call(map);

var svg = container.select("svg");

zoom = d3
.zoom()
.scaleExtent([0.5, 6])
.on("zoom", zoomed);

var zoomContainer = svg.call(zoom);
var initialScale = 2;
var initialTranslate = [100, 200];

zoom.scaleTo(zoomContainer, initialScale);
zoom.translateTo(
zoomContainer,
initialTranslate[0],
initialTranslate[1]
);

function zoomed() {
svg.select("g").attr("transform", d3.event.transform.toString());
}
// });
}

render() {
return <div id="tube_map_101" />;
}
}

export default TubeMap;









share|improve this question













I have imported tube-map from d3.js in my reactjs project. But getting the following issue for not importing it properly. The issue I'm getting is shown in below sceenshot:



enter image description here



Following is the code I'm using. I've installed d3-tube-map using npm. Maybe I'm lacking on properly importing the exported value of d3-tube-map. Any help about this issue?



import React, { Component } from "react";
// import d3 from "d3";
import d3 from "d3-tube-map";
import "d3-tip";
import tubeData from "./JSON/tube_data.jsx";

class TubeMap extends Component {
componentDidMount() {
var container = d3.select("#tube_map_101");
var width = 700;
var height = 400;

var map = d3
.tubeMap()
.width(width)
.height(height)
.margin({
top: 20,
right: 20,
bottom: 40,
left: 100
})
.on("click", function(name) {
console.log(name);
});

// d3.json("./stations.json", function (error, data) {
container.datum(tubeData).call(map);

var svg = container.select("svg");

zoom = d3
.zoom()
.scaleExtent([0.5, 6])
.on("zoom", zoomed);

var zoomContainer = svg.call(zoom);
var initialScale = 2;
var initialTranslate = [100, 200];

zoom.scaleTo(zoomContainer, initialScale);
zoom.translateTo(
zoomContainer,
initialTranslate[0],
initialTranslate[1]
);

function zoomed() {
svg.select("g").attr("transform", d3.event.transform.toString());
}
// });
}

render() {
return <div id="tube_map_101" />;
}
}

export default TubeMap;






javascript reactjs d3.js react-redux react-component






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 17 at 14:35









Subhojit

149116




149116












  • What is the reason of deleting your question from 2018-11-16 09:33:17Z stackoverflow.com/questions/53334987/… and posting the same question 30 hours later at 2018-11-17 14:35:40Z? This is the 3rd time you post the same question
    – rioV8
    Nov 17 at 16:57












  • Because I wanted a solution and there might be a lack of noticing questions here i don't know why.
    – Subhojit
    Nov 17 at 17:01


















  • What is the reason of deleting your question from 2018-11-16 09:33:17Z stackoverflow.com/questions/53334987/… and posting the same question 30 hours later at 2018-11-17 14:35:40Z? This is the 3rd time you post the same question
    – rioV8
    Nov 17 at 16:57












  • Because I wanted a solution and there might be a lack of noticing questions here i don't know why.
    – Subhojit
    Nov 17 at 17:01
















What is the reason of deleting your question from 2018-11-16 09:33:17Z stackoverflow.com/questions/53334987/… and posting the same question 30 hours later at 2018-11-17 14:35:40Z? This is the 3rd time you post the same question
– rioV8
Nov 17 at 16:57






What is the reason of deleting your question from 2018-11-16 09:33:17Z stackoverflow.com/questions/53334987/… and posting the same question 30 hours later at 2018-11-17 14:35:40Z? This is the 3rd time you post the same question
– rioV8
Nov 17 at 16:57














Because I wanted a solution and there might be a lack of noticing questions here i don't know why.
– Subhojit
Nov 17 at 17:01




Because I wanted a solution and there might be a lack of noticing questions here i don't know why.
– Subhojit
Nov 17 at 17:01












1 Answer
1






active

oldest

votes

















up vote
0
down vote













Yes, your imports aren't quite right. If you look at the example provided on the npm page for this module, it uses both d3 and d3-tube-map.



<script src="https://d3js.org/d3.v4.js"></script>
<script src="../dist/d3-tube-map.js"></script>


Which gives a clue, but doesn't help much with how to do this using ES6 imports. Looking at the code for the module over on github, I would try this first (many lines excluded):



import tubeMap from "d3-tube-map";

...

var map = tubeMap()


What I noticed on github is that the tubeMap module already imports d3 inside it. So maybe you don't need to import d3 yourself.



If the above doesn't work, you may have to import both d3 and d3-tube-map, in which case I'm not sure how they should work together as imports. If that's the case, I would open an issue on github with the author to get an example.






share|improve this answer





















  • Thanks a lot for your time @Todd. I have just tried the first solution which is to import only d3-tube-map and it's causing an error - d3.tubeMap is not a function and also tried the second option to import both d3 and d3-tube-map and this case is also causing an error - Uncaught TypeError: _d2.default.tubeMap is not a function.
    – Subhojit
    Nov 17 at 17:22












  • @Subhojit I'm not sure how to get the imports right, but as your next step you should open an issue at the git repo. In the meantime, if you want to post your code on jsfiddle.net and add the link to your question, I will be happy to see if I can get it working and update my answer.
    – Todd Chaffee
    Nov 17 at 17:55










  • Hi Todd, I've shared the editor url here - stackblitz.com/edit/react-9sfz89
    – Subhojit
    Nov 18 at 8:39










  • The issue got resolved as I was lacking on importing the attribute from d3-tube-map library properly so I used import * as tubeMap from 'd3-tube-map' and the issue got resolved. Thanks @Todd for trying to help.
    – Subhojit
    2 days ago










  • This is the working Demo - stackblitz.com/edit/react-9sfz89
    – Subhojit
    2 days ago











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352210%2fhow-to-import-and-use-d3-tube-map-in-react-js%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













Yes, your imports aren't quite right. If you look at the example provided on the npm page for this module, it uses both d3 and d3-tube-map.



<script src="https://d3js.org/d3.v4.js"></script>
<script src="../dist/d3-tube-map.js"></script>


Which gives a clue, but doesn't help much with how to do this using ES6 imports. Looking at the code for the module over on github, I would try this first (many lines excluded):



import tubeMap from "d3-tube-map";

...

var map = tubeMap()


What I noticed on github is that the tubeMap module already imports d3 inside it. So maybe you don't need to import d3 yourself.



If the above doesn't work, you may have to import both d3 and d3-tube-map, in which case I'm not sure how they should work together as imports. If that's the case, I would open an issue on github with the author to get an example.






share|improve this answer





















  • Thanks a lot for your time @Todd. I have just tried the first solution which is to import only d3-tube-map and it's causing an error - d3.tubeMap is not a function and also tried the second option to import both d3 and d3-tube-map and this case is also causing an error - Uncaught TypeError: _d2.default.tubeMap is not a function.
    – Subhojit
    Nov 17 at 17:22












  • @Subhojit I'm not sure how to get the imports right, but as your next step you should open an issue at the git repo. In the meantime, if you want to post your code on jsfiddle.net and add the link to your question, I will be happy to see if I can get it working and update my answer.
    – Todd Chaffee
    Nov 17 at 17:55










  • Hi Todd, I've shared the editor url here - stackblitz.com/edit/react-9sfz89
    – Subhojit
    Nov 18 at 8:39










  • The issue got resolved as I was lacking on importing the attribute from d3-tube-map library properly so I used import * as tubeMap from 'd3-tube-map' and the issue got resolved. Thanks @Todd for trying to help.
    – Subhojit
    2 days ago










  • This is the working Demo - stackblitz.com/edit/react-9sfz89
    – Subhojit
    2 days ago















up vote
0
down vote













Yes, your imports aren't quite right. If you look at the example provided on the npm page for this module, it uses both d3 and d3-tube-map.



<script src="https://d3js.org/d3.v4.js"></script>
<script src="../dist/d3-tube-map.js"></script>


Which gives a clue, but doesn't help much with how to do this using ES6 imports. Looking at the code for the module over on github, I would try this first (many lines excluded):



import tubeMap from "d3-tube-map";

...

var map = tubeMap()


What I noticed on github is that the tubeMap module already imports d3 inside it. So maybe you don't need to import d3 yourself.



If the above doesn't work, you may have to import both d3 and d3-tube-map, in which case I'm not sure how they should work together as imports. If that's the case, I would open an issue on github with the author to get an example.






share|improve this answer





















  • Thanks a lot for your time @Todd. I have just tried the first solution which is to import only d3-tube-map and it's causing an error - d3.tubeMap is not a function and also tried the second option to import both d3 and d3-tube-map and this case is also causing an error - Uncaught TypeError: _d2.default.tubeMap is not a function.
    – Subhojit
    Nov 17 at 17:22












  • @Subhojit I'm not sure how to get the imports right, but as your next step you should open an issue at the git repo. In the meantime, if you want to post your code on jsfiddle.net and add the link to your question, I will be happy to see if I can get it working and update my answer.
    – Todd Chaffee
    Nov 17 at 17:55










  • Hi Todd, I've shared the editor url here - stackblitz.com/edit/react-9sfz89
    – Subhojit
    Nov 18 at 8:39










  • The issue got resolved as I was lacking on importing the attribute from d3-tube-map library properly so I used import * as tubeMap from 'd3-tube-map' and the issue got resolved. Thanks @Todd for trying to help.
    – Subhojit
    2 days ago










  • This is the working Demo - stackblitz.com/edit/react-9sfz89
    – Subhojit
    2 days ago













up vote
0
down vote










up vote
0
down vote









Yes, your imports aren't quite right. If you look at the example provided on the npm page for this module, it uses both d3 and d3-tube-map.



<script src="https://d3js.org/d3.v4.js"></script>
<script src="../dist/d3-tube-map.js"></script>


Which gives a clue, but doesn't help much with how to do this using ES6 imports. Looking at the code for the module over on github, I would try this first (many lines excluded):



import tubeMap from "d3-tube-map";

...

var map = tubeMap()


What I noticed on github is that the tubeMap module already imports d3 inside it. So maybe you don't need to import d3 yourself.



If the above doesn't work, you may have to import both d3 and d3-tube-map, in which case I'm not sure how they should work together as imports. If that's the case, I would open an issue on github with the author to get an example.






share|improve this answer












Yes, your imports aren't quite right. If you look at the example provided on the npm page for this module, it uses both d3 and d3-tube-map.



<script src="https://d3js.org/d3.v4.js"></script>
<script src="../dist/d3-tube-map.js"></script>


Which gives a clue, but doesn't help much with how to do this using ES6 imports. Looking at the code for the module over on github, I would try this first (many lines excluded):



import tubeMap from "d3-tube-map";

...

var map = tubeMap()


What I noticed on github is that the tubeMap module already imports d3 inside it. So maybe you don't need to import d3 yourself.



If the above doesn't work, you may have to import both d3 and d3-tube-map, in which case I'm not sure how they should work together as imports. If that's the case, I would open an issue on github with the author to get an example.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 17 at 16:10









Todd Chaffee

3,3361828




3,3361828












  • Thanks a lot for your time @Todd. I have just tried the first solution which is to import only d3-tube-map and it's causing an error - d3.tubeMap is not a function and also tried the second option to import both d3 and d3-tube-map and this case is also causing an error - Uncaught TypeError: _d2.default.tubeMap is not a function.
    – Subhojit
    Nov 17 at 17:22












  • @Subhojit I'm not sure how to get the imports right, but as your next step you should open an issue at the git repo. In the meantime, if you want to post your code on jsfiddle.net and add the link to your question, I will be happy to see if I can get it working and update my answer.
    – Todd Chaffee
    Nov 17 at 17:55










  • Hi Todd, I've shared the editor url here - stackblitz.com/edit/react-9sfz89
    – Subhojit
    Nov 18 at 8:39










  • The issue got resolved as I was lacking on importing the attribute from d3-tube-map library properly so I used import * as tubeMap from 'd3-tube-map' and the issue got resolved. Thanks @Todd for trying to help.
    – Subhojit
    2 days ago










  • This is the working Demo - stackblitz.com/edit/react-9sfz89
    – Subhojit
    2 days ago


















  • Thanks a lot for your time @Todd. I have just tried the first solution which is to import only d3-tube-map and it's causing an error - d3.tubeMap is not a function and also tried the second option to import both d3 and d3-tube-map and this case is also causing an error - Uncaught TypeError: _d2.default.tubeMap is not a function.
    – Subhojit
    Nov 17 at 17:22












  • @Subhojit I'm not sure how to get the imports right, but as your next step you should open an issue at the git repo. In the meantime, if you want to post your code on jsfiddle.net and add the link to your question, I will be happy to see if I can get it working and update my answer.
    – Todd Chaffee
    Nov 17 at 17:55










  • Hi Todd, I've shared the editor url here - stackblitz.com/edit/react-9sfz89
    – Subhojit
    Nov 18 at 8:39










  • The issue got resolved as I was lacking on importing the attribute from d3-tube-map library properly so I used import * as tubeMap from 'd3-tube-map' and the issue got resolved. Thanks @Todd for trying to help.
    – Subhojit
    2 days ago










  • This is the working Demo - stackblitz.com/edit/react-9sfz89
    – Subhojit
    2 days ago
















Thanks a lot for your time @Todd. I have just tried the first solution which is to import only d3-tube-map and it's causing an error - d3.tubeMap is not a function and also tried the second option to import both d3 and d3-tube-map and this case is also causing an error - Uncaught TypeError: _d2.default.tubeMap is not a function.
– Subhojit
Nov 17 at 17:22






Thanks a lot for your time @Todd. I have just tried the first solution which is to import only d3-tube-map and it's causing an error - d3.tubeMap is not a function and also tried the second option to import both d3 and d3-tube-map and this case is also causing an error - Uncaught TypeError: _d2.default.tubeMap is not a function.
– Subhojit
Nov 17 at 17:22














@Subhojit I'm not sure how to get the imports right, but as your next step you should open an issue at the git repo. In the meantime, if you want to post your code on jsfiddle.net and add the link to your question, I will be happy to see if I can get it working and update my answer.
– Todd Chaffee
Nov 17 at 17:55




@Subhojit I'm not sure how to get the imports right, but as your next step you should open an issue at the git repo. In the meantime, if you want to post your code on jsfiddle.net and add the link to your question, I will be happy to see if I can get it working and update my answer.
– Todd Chaffee
Nov 17 at 17:55












Hi Todd, I've shared the editor url here - stackblitz.com/edit/react-9sfz89
– Subhojit
Nov 18 at 8:39




Hi Todd, I've shared the editor url here - stackblitz.com/edit/react-9sfz89
– Subhojit
Nov 18 at 8:39












The issue got resolved as I was lacking on importing the attribute from d3-tube-map library properly so I used import * as tubeMap from 'd3-tube-map' and the issue got resolved. Thanks @Todd for trying to help.
– Subhojit
2 days ago




The issue got resolved as I was lacking on importing the attribute from d3-tube-map library properly so I used import * as tubeMap from 'd3-tube-map' and the issue got resolved. Thanks @Todd for trying to help.
– Subhojit
2 days ago












This is the working Demo - stackblitz.com/edit/react-9sfz89
– Subhojit
2 days ago




This is the working Demo - stackblitz.com/edit/react-9sfz89
– Subhojit
2 days ago


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53352210%2fhow-to-import-and-use-d3-tube-map-in-react-js%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

"Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

Alcedinidae

Origin of the phrase “under your belt”?