C3 создание гистограммы с категориальными данными JSON - PullRequest
0 голосов
/ 12 июня 2018

Как указать метки оси X для гистограммы C3 с данными, загруженными через JSON?Я ничего не вижу в документах, и самый близкий, который я нашел, был this , но он только дает пример для данных, указанных в формате столбца, тогда как у меня есть данные, указанные в формате JSON, такие как в этом примере

Моя попытка:

const chart = c3.generate({
            data: {
                // x: "title",
                json: bookData,
                type: "bar",
                keys: {
                    value: ["count"]
                }
            },
            axis: {
                x: {
                    tick: {
                        values: labels,
                        rotate: 90,
                    },
                    type: "category",
                }
            },
            bindto: "#book-title-histogram",
        });

Раскомментируя x: "title", он приводит к тому, что сюжет перестает быть видимым.С этой строкой, закомментированной, ось просто пуста.

РЕДАКТИРОВАТЬ: bookData является массивом с каждым элементом, имеющим ключи count и title

1 Ответ

0 голосов
/ 12 июня 2018

Похоже, отображение ваших данных работает.

const bookData = [{
  count: 3,
  title: 'The Foutainhead'
},{
  count: 4,
  title: 'Fight Club'
},{
  count: 2,
  title: 'Ender\'s Game'
}]

const titles = bookData.map((obj) => {
  return obj.title
})

const counts = bookData.map((obj) => {
  return obj.count
})

console.log(titles)

const chart = c3.generate({
            data: {
                x: 'title',
                y: 'count',
                json: {
                    title: titles,
                    data: counts,
                },
                type: "bar",
            },
            axis: {
                x: {
                    tick: {
                        count: bookData.length,
                        rotate: 45,
                    },
                    type: "category",
                }
            },
            bindto: "#book-title-histogram",
        });

enter image description here

...