我想在条形图中使用符号来表示用户指定的习惯。文本可能太长,会被下一个图表截断。
以下是我尝试的:
Chart {
ForEach(habitItems) { habit in
BarMark(x: .value("Type", Image(systemName: habit.symbolHI)),
y: .value("Tracked", countTrackedDates(for: habit))
)
.foregroundStyle(getBarColor(for: habit).gradient)
.cornerRadius(20)
}
}
字符串habit.symbolHI
等于一个字符串,例如:"square.fill"
我得到一个错误:
初始化器“init(x:y:width:height:stacking:)”要求“Image”符合“Ploconline”
也许有一种方法可以使图像放大,但我不知道如何。
1条答案
按热度按时间pprl5pva1#
为了简单起见,我假设你有一个数组:
字符串
您可以只绘制图像的名称。
型
然后使用
chartXAxis
将X轴标记更改为图像:型
我在这里将
value
转换为String
,因为我知道我在x轴上绘制字符串(如x: .value("Type", habit.symbolName)
)。如果x轴标记的索引与数据的索引匹配,则也可以使用habitItems[value.index].symbolName
(如果数据是Array
,则可以使用habitItems[value.index].symbolName
,但如果数据是ArraySlice
,则不能使用ArraySlice
)。