Pregunta

Estoy utilizando el dojox.charting.widget.Chart2D y yo estoy tratando de recuperar los datos de un dojo.data.ItemFileReadStore. Puedo recuperar los datos, y todo funciona y pantallas, excepto que parece que no puede encontrar una forma de visualización de etiquetas personalizadas en los artículos. Mi código HTML es:

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

Y mi JSON desde el ItemFileReadStore es:

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

He intentado fijar el atributo de etiqueta en la serie y he dado la labelAttribute en el JSON. También probé solo label en el JSON y no funcionó bien. Al proporcionar los datos como JSON en un array o proporcionar la data directamente en la serie, consigo las etiquetas para el trabajo. Tenía muchas ganas de hacerlo, aunque más flexible, proporcionando los datos a través de un almacén de datos.

¿Fue útil?

Solución

La forma de hacerlo es modificar su JSON un poco y actualización de los atributos correspondientes en el código HTML.

JSON:

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

El cambio sólo tiene sentido es a los datos de sectores específicos separados en un sub-objeto (slice) por simplicidad.

HTML (sólo la línea tienda relacionada debe ser modificado):

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

Déjame saber cómo va.

Otros consejos

he tenido que hacer frente a problemas similares con etiquetas personalizadas, a pesar de que estaba usando una forma programática para crear la tabla de la div .... espero que esto ayude a alguien ....

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

mychart es la variable que he utilizado para crear el widget gráfico ....

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top