2014-11-23 2 views
0

Мне нужно разместить несколько (в конечном счете 4, но я начинаю с двух здесь) графиков d3 на одной веб-странице. После this tutorial я создал две дивы:Проблемы с позиционированием нескольких графиков d3 на странице html

<div id="donut"></div> 
<div id="line-graph"></div> 

А потом я прилагаемую графики их соответствующих дивы, как так:

var svg = d3.select("#line-graph").append("svg") 

И

var svg = d3.select("#donut").append("svg") 

Тем не менее, они по-прежнему на вершине друг на друга. Что мне не хватает?

Я знаю, что есть другие люди, у которых была эта проблема, но многие из этих вопросов либо остались без ответа, либо ответ не решит мою проблему. Вы можете видеть, что я говорю о here.

Заранее спасибо.

ответ

0

Оба ваших сценария объявляют глобальные переменные с именем 'svg', а затем ссылаются на эту глобальную переменную в обратном вызове после загрузки файла. Если вы проверите свои графики, вы увидите, что они на самом деле находятся как на одном элементе SVG, так и на элементе SVG, который должен быть включен в линейный граф , пуст.

Вам нужно переименовать переменные во втором скрипте, чтобы они имели разные имена, чем переменные в первом скрипте.

+0

Отлично! Спасибо! – kacmcgrath

+0

Ещё один вопрос об этом, фактически. Любые мысли о том, почему в настоящее время отсутствуют оси х? Это [оригинал] (http://www.pitt.edu/~kac232/finalproject/linegraph_resize.html), и это [сейчас] (http://www.pitt.edu/~kac232/finalproject/neighborhood_profile. HTML). Я только что заметил это, но я думаю, что это действительно пропало, когда я впервые присоединился к div. Я ухаживал за страницей, но я не думаю, что это имеет к ней какое-то отношение. – kacmcgrath

+0

Ваша ось x находится за пределами вашего SVG. Ваш SVG имеет высоту 260 пикселей, тогда g-контейнер переводится на 20 пикселей, а ось x - на 260 пикселей. Таким образом, * top * оси x составляет 280 пикселей, что находится ниже нижней части SVG. Примечание. Как в Safari, так и в Chrome (и я предполагаю, что в FF) вы можете щелкнуть правой кнопкой мыши «Inspect element», чтобы просмотреть сгенерированный HTML/SVG и исследовать такие проблемы. –

Смежные вопросы