I have a dataset I want to have split between past/historic data and future/predicted data. The values for the predicted data take the last value from pastData
and apply a decay function to show how much of something is left.
I have the data split into two arrays (sampleData_History
and sampleData_Future
); I have also attempted this with the data combined (sampleData
) and tried a conditional in the .foregroundStyle
property.
Chart {
ForEach(sampleData_History) { item in
RuleMark(x: .value("Now", Date.now, unit: .hour)).foregroundStyle(.orange)
LineMark(
x: .value("time", item.date, unit: .hour),
y: .value("mg", item.amount)
)
.foregroundStyle(Color.blue)
AreaMark(
x: .value("time", item.date, unit: .hour),
y: .value("mg", item.amount)
).foregroundStyle(Color.teal.opacity(0.2))
}
ForEach(sampleData_Future) { item in
LineMark(
x: .value("time", item.date, unit: .hour),
y: .value("mg", item.amount)
)
.foregroundStyle(Color.red)
AreaMark(
x: .value("time", item.date, unit: .hour),
y: .value("mg", item.amount)
).foregroundStyle(Color.red.opacity(0.2))
}
}
The above code yields the screenshot below. In the ideal case, I'd like to have everything AFTER the RuleMark
line be a different color. Am I missing something? Where might I look to figure this out?
EDIT: I have also tried separating them into series
to no avail