Отображение пользовательской метки из хранилища данных с помощью dojox.charting

StackOverflow https://stackoverflow.com/questions/1977170

  •  21-09-2019
  •  | 
  •  

Вопрос

я использую dojox.charting.widget.Chart2D и я пытаюсь получить данные из dojo.data.ItemFileReadStore.Я могу получить данные, и все работает и отображается, за исключением того, что я не могу найти способ отображать пользовательские метки на элементах.Мой HTML-фрагмент:

<div dojoType="dojo.data.ItemFileReadStore" jsId="chartDataStore" 
    url="json/archiveinfo.json.php"></div>
<div dojoType="dojox.charting.widget.Chart2D" id="chartTest" 
    theme="dojox.charting.themes.PlotKit.blue" style="width: 300px; height: 300px;">
  <div class="plot" name="default" type="Pie" fontColor="black" htmlLabels="false" 
    radius="100"></div>
  <div class="series" name="Series A" store="chartDataStore" field="y" 
    label="text" valueFn="Number(x)"></div>
  <div class="action" type="Tooltip"></div>
  <div class="action" type="MoveSlice"></div>
</div>

И мой JSON из ItemFileReadStore:

{"identifier":"id","labelAttribute":"text","items":
  [
    {"id":1,"y":55,"text":"Free"},
    {"id":2,"y":45,"text":"Used"}
  ]
}

Я попытался установить атрибут метки в серии и установил labelAttribute в формате JSON.Я тоже попробовал просто label в JSON, и это тоже не сработало.Когда я предоставляю данные в формате JSON в array или предоставить data прямо в сериале я заставляю работать метки.Однако мне очень хотелось сделать его более гибким, предоставляя данные через DataStore.

Это было полезно?

Решение

Способ сделать это — немного изменить JSON и обновить соответствующие атрибуты в HTML.

JSON:

{
  "items": [
    {"id":1, "slice": {"y":55,"text":"Free"}},
    {"id":2, "slice": {"y":45,"text":"Used"}}
  ]
}

Единственное значимое изменение — это разделение данных, специфичных для круговой диаграммы, в подобъекте (slice) для простоты.

HTML (следует изменить только строку, связанную с магазином):

<div class="series" name="Series A"
  store="chartDataStore" field="slice"></div>

Дайте мне знать, как идут дела.

Другие советы

Мне пришлось столкнуться с аналогичной проблемой с пользовательскими метками, хотя я использовал программный способ создания диаграммы в div....Надеюсь, это кому-то поможет....

var mytooltip = new dojox.charting.action2d.Tooltip(mychart,"default", 
    {text: function(e) {
               var tooltiptext = <construct ur custom label here>   
               return tooltiptext;
        }
    }); 

mychart это переменная, которую я использовал для создания виджета диаграммы....

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top