Aquí está mi demo (enlace permanente; podría tardar un segundo en cargarse).Cómo crear un histograma usando d3.js y datos de filtro cruzado?
Estoy teniendo algunos problemas con ella:
clave El crossfilter no refleja el límite superior. Por lo tanto, el eje x falta un paso.
me las arreglé para fijarlo al obtener un tamaño de grupo a paso (
group.all()[1] - group.all()[0]
) y después de añadir a lad3.extent(group.all())[1]
. Debido a que es una solución sucia, no incluí esto en la demostración (puede haber una brecha de datos). ¿Cuál es una forma menos sucia de obtener el tamaño de paso de grupo/corregir el eje x?Hay huecos desiguales entre las barras. No puedo encontrar la manera de solucionar la inconsistencia de x.scale con diferentes conjuntos de datos.
I desea que la barra de anchura para adaptarse automáticamente a la anchura gráfico disponible. Por lo tanto, puedo calcular la anchura óptima bar y luego (si es necesario) cambiar el tamaño de la gráfica en sí:
bar_width = math.round(graph_width/data_length); graph_width = bar_width*data_length;
Bajo esta condición, no hay manera de
x.scale
puede devolver datos desiguales para cualquier valor de la clave, sin embargo, lo hace. No hay magia; Simplemente estoy pasando por alto algo. ¿Pero, qué es esto?Cuando
x.scale
es mal estado luego de deducir elbar_width
delgraph_width
antes de ajustar el rangox.scale
soluciona el problema. Sin embargo, no puedo entender la condición para detectar cuando x.scale no está actuando como se esperaba.
Esto es genial! ¿Hay alguna forma de tener todo resaltado por defecto? – by0
No he tocado esto en mucho tiempo. Si envía una solicitud de problema/función en GitHub, lo echaré un vistazo. – Gajus