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
相关产品推荐
相关产品推荐

