Диаграммы SwiftUI обрезают последнее значение с центрированным AxisValueLabel

Я возился с новой библиотекой быстрых диаграмм, и ее выравнивание немного странно для значений 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 )
    }
    
}

Как вы можете видеть, это изображение показывает, когда центрирование равно false. если я использую center = true, тогда все центрируется между соответствующей отметкой полосы, но Dec обрезается

Trey6 17.02.2023 18:50

Отвечает ли это на ваш вопрос? Swift Charts не будет отображать последнюю ось X AxisValueLabel с AxisMarks

workingdog support Ukraine 18.02.2023 01:25

Я видел это, и, к сожалению, это не так. я пойду еще раз и посмотрю, не пропустил ли я что-то

Trey6 21.02.2023 21:23

можешь показать что пробовал? У вас было что-то вроде .chartXScale(domain: 0...vm.currentUsage.count). Без минимального воспроизводимого кода см.: минимальный код сложно отладить вашу проблему.

workingdog support Ukraine 22.02.2023 00:36

При добавлении этого графика исчезает... код выше был обновлен так, как я его добавил.

Trey6 22.02.2023 17:11

На самом деле это не позволит мне редактировать код выше. Но .chartXScale — это модификатор диаграммы {}, поэтому он был просто добавлен под ним. код все тот же, кроме добавления chartXScale, и, как я уже сказал, график исчезает.

Trey6 22.02.2023 17:14

Догадаться. решение опубликовано. Спасибо за помощь @workingdogsupportUkraine

Trey6 22.02.2023 17:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
7
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

в коде, который я разместил, у меня есть модификатор на диаграмме {}, называемый

.chartXAxis{}

в этом модификаторе у меня есть AxisMarks следующим образом

.chartXAxis{
    AxisMarks(preset: .aligned....){}
}

Я нашел это где-то в учебнике и не думал об этом. После удаления пресета: .aligned мои проблемы были решены.

РЕШЕНИЕ

Chart{...}
.chartXAxis{
    AxisMarks(...){}
}

Другие вопросы по теме