#javascript #reactjs #charts #react-chartjs #react-chartjs-2
#javascript #reactjs #Диаграммы #react-chartjs #react-chartjs-2
Вопрос:
Я хочу получить правильные визуализированные данные на моей диаграмме, но это мешает, потому что есть 1000 элементов массива. Я не хочу уменьшать данные, но на самом деле получить правильную визуализацию, потому что по оси x графика отображаются значения NaN.
fetch("./data.json")
.then((res) => {
return res.json();
})
.then((data) => {
console.log(data);
for (const dataObj of data) {
empSal.push(parseInt(dataObj.intensity));
empAge.push(parseInt(dataObj.start_year));
}.catch((err) => {
console.log(err);
});
(1000) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, …]
образец данных (data.json):
[
{
"end_year": "",
"intensity": 6,
"sector": "Energy",
"topic": "gas",
"insight": "Annual Energy Outlook",
"url": "http://www.eia.gov/outlooks/aeo/pdf/0383(2017).pdf",
"region": "Northern America",
"start_year": "",
"impact": "",
"added": "January, 20 2017 03:51:25",
"published": "January, 09 2017 00:00:00",
"country": "United States of America",
"relevance": 2,
"pestle": "Industries",
"source": "EIA",
"title": "U.S. natural gas consumption is expected to increase during much of the projection period.",
"likelihood": 3
},
….
Комментарии:
1. покажите некоторый образец данных……
2. Могу ли я узнать, для каких свойств из приведенных выше вы пытаетесь построить график
(intensity and start_year)
?3. да, интенсивность против start_year
4. итак
start_year
, в data есть пустое значение, хотите ли вы отфильтровать его и показать?5. не могли бы вы подробнее объяснить, что вас смущает..
Ответ №1:
Вы можете отфильтровать data
массив, имеющий оба start_year
и intensity
и сопоставление для обоих значений :
const intensity = data.filter(el => el.intensity amp;amp; el.start_year).map(val => val.intensity);
const year = data.filter(el => el.intensity amp;amp; el.start_year).map(val => val.start_year);
Используя эти два, вы можете нарисовать график в соответствии с вашим запросом
примерный пример фильтрации данных здесь