已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。
7天前关闭
Improve this question的
我想在react中改变折线图的最后一段的颜色,我正在使用chartjs库
import React from "react";
import { Line } from "react-chartjs-2";
import "../Styles/charitem.css";
import {
Chart,
LinearScale,
CategoryScale,
PointElement,
LineElement,
} from "chart.js";
Chart.register(LinearScale, CategoryScale, PointElement, LineElement);
function ChartItem() {
const last_element = (ctx, value) => {
if (ctx.p0DataIndex === 0) {
return value;
}
return undefined;
};
const historicalData = {
labels: Array.from({ length: 7 }, (_, index) => getTimeLabel(index + 9, 0)),
datasets: [
{
label: "Stock Price",
data: Array.from({ length: 6 }, () => getRandomPrice(100, 250)),
borderColor: "blue",
backgroundColor: "rgba(0, 0, 255, 0.2)",
tension: 0.4,
segment: {
borderColor: (ctx) =>
last_element(ctx, "rgba(0, 0, 255, 0.2)") ||
down(ctx, "rgba(255,0,0, 1)") ||
" rgba(0,128,0,1)",
},
},
],
};
return (
<div className="chartitem-div">
<Line data={historicalData} options={options} />
</div>
);
}
// Helper function to generate random price between min and max
function getRandomPrice(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// Helper function to format time label
function getTimeLabel(hours, minutes) {
return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(
2,
"0"
)}`;
}
export default ChartItem;
字符串
我可以使用last_element函数中的ctx.p0DataIndex对第一个元素进行修改,如何访问数组的最后一个元素,以便我可以更改其颜色?
1条答案
按热度按时间pn9klfpd1#
尽管我没有使用react-chartjs-2来做这件事,但我认为它应该对你有所帮助。
个字符
我将下一个点的索引与上一个索引进行比较。如果2相等,则将线段的颜色更改为红色。
Here's the full code看看它是什么样子