You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift Charts设置Y轴范围:SwiftUI折线图仅显示30-40区间

Swift Charts 固定Y轴区间并调整图表尺寸

要让Y轴仅显示30至40的区间,同时避免图表占满整个屏幕,只需做两处修改:

  • 给Chart添加chartYScale(domain:)修饰符,强制指定Y轴的取值范围
  • 通过.frame()设置图表的固定高度(或宽高),限制其显示尺寸

修改后的完整代码如下:

struct PatientData: Decodable, Encodable, Identifiable  {
    var id: Int?
    
    let temperature: Double
    let timestamp: Int
    init(id: Int, temperature: Double, timestamp: Int) {
        self.id = id
        self.temperature = temperature
        self.timestamp = timestamp
    }
}

func generateData() -> [PatientData]{
    var data: [PatientData] = []
    for i in 0...23 {
        data.append(
            PatientData(id: i, temperature: Double.random(in: 30.0...40.0), timestamp: i)
        )
    }
    return data
}

struct TemperatureChartView: View {
    var data = generateData()
    var body: some View {
        Chart(data){
            LineMark(x: .value("Time", $0.timestamp), y: .value("Temperature", $0.temperature))
        }
        // 固定Y轴区间为30-40
        .chartYScale(domain: 30...40)
        // 设置图表尺寸,避免占满屏幕,可按需调整height值
        .frame(height: 300)
        .padding()
    }
}

struct TemperatureChartView_Previews: PreviewProvider {
    static var previews: some View {
        TemperatureChartView()
    }
}

关键说明

  • chartYScale(domain: 30...40):强制Y轴的显示范围固定在30到40之间,不会因为数据的波动自动调整上下限。
  • .frame(height: 300):将图表的高度固定为300pt,宽度默认自适应父容器,你可以根据需求修改height数值,或者添加width参数指定宽度。
  • .padding():给图表添加内边距,避免紧贴屏幕边缘。

内容的提问来源于stack exchange,提问作者Panda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:15:44