Я возился с новой библиотекой быстрых диаграмм, и ее выравнивание немного странно для значений x. Когда я указываю AxisValueLabel(centered: true), последнее значение обрезается (в данном случае декабрь).
Если я не укажу center=true, то значение x имеет начальное выравнивание и выглядит не так.
код для графика
struct graphOne: View {
@ObservedObject var vm: CVVM
@State private var position = 30
var frameWidth = UIScreen.screenWidth
var body: some View {
Chart {
ForEach(vm.currentUsage) { empRes in
BarMark(
x: .value("Month", empRes.date, unit: vm.filter),
y: .value("energy", empRes.energyUsage)
)
//.foregroundStyle(.green)
.annotation(position: .top) {
Text("\(empRes.energyUsage)")
.font(.caption)
}
.cornerRadius(5)
}
}
.chartXAxis {
AxisMarks(preset: .aligned, values: vm.currentUsage.map{ $0.date}) { date in
AxisValueLabel(format: vm.chartType == "months" ? .dateTime.month() : .dateTime.day(), centerd: true)
}
}
.chartYAxis {
AxisMarks(position: .leading)
}
.padding()
.frame(width: frameWidth )
}
}
Отвечает ли это на ваш вопрос? Swift Charts не будет отображать последнюю ось X AxisValueLabel с AxisMarks
Я видел это, и, к сожалению, это не так. я пойду еще раз и посмотрю, не пропустил ли я что-то
можешь показать что пробовал? У вас было что-то вроде .chartXScale(domain: 0...vm.currentUsage.count)
. Без минимального воспроизводимого кода см.: минимальный код сложно отладить вашу проблему.
При добавлении этого графика исчезает... код выше был обновлен так, как я его добавил.
На самом деле это не позволит мне редактировать код выше. Но .chartXScale — это модификатор диаграммы {}, поэтому он был просто добавлен под ним. код все тот же, кроме добавления chartXScale, и, как я уже сказал, график исчезает.
Догадаться. решение опубликовано. Спасибо за помощь @workingdogsupportUkraine
в коде, который я разместил, у меня есть модификатор на диаграмме {}, называемый
.chartXAxis{}
в этом модификаторе у меня есть AxisMarks следующим образом
.chartXAxis{
AxisMarks(preset: .aligned....){}
}
Я нашел это где-то в учебнике и не думал об этом. После удаления пресета: .aligned мои проблемы были решены.
РЕШЕНИЕ
Chart{...}
.chartXAxis{
AxisMarks(...){}
}
Как вы можете видеть, это изображение показывает, когда центрирование равно false. если я использую center = true, тогда все центрируется между соответствующей отметкой полосы, но Dec обрезается