代码之家  ›  专栏  ›  技术社区  ›  Kitson

使用dojox.charting显示数据存储中的自定义标签

  •  1
  • Kitson  · 技术社区  · 16 年前

    我正在使用 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>
    

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

    我已尝试在系列中设置label属性,并已设置 labelAttribute 在JSON中。我也试过了 label 在JSON中,它也不起作用。当我在 array 或提供 data 在这个系列中,我直接让标签发挥作用。我真的想通过数据存储提供数据,使它更灵活。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Eugene Lazutkin    16 年前

    方法是稍微修改JSON并更新HTML中相应的属性。

    {
      "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>
    

        2
  •  -1
  •   Nat Ritmeyer    13 年前

    我不得不面对自定义标签的类似问题,尽管我正在使用编程方式在div上创建图表。。。。希望这对某人有帮助。。。。

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

    mychart

    推荐文章