# LooseChart **Repository Path**: Lvwl-CN/LooseChart ## Basic Information - **Project Name**: LooseChart - **Description**: 松散的图表控件,只有图和轴,需要用户自定义布局 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 8 - **Created**: 2022-11-03 - **Last Updated**: 2026-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: chart, 图表, 高性能, WPF ## README # 开源不易,感谢支持,承接医疗设备上位机软件开发 ![支付宝微信](doc/zfbwx.png) **微信:Lvwl-CN** **邮箱:Lvwl-CN@outlook.com** --- # LooseChart 松散图表控件 [![NuGet](https://img.shields.io/nuget/v/LooseChart)](https://www.nuget.org/packages/LooseChart) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) LooseChart 是一款基于 **NET** 的高性能图表控件库,专为**海量数据可视化**场景设计。支持 **500 万级数据点秒级渲染**,提供多种图表类型和坐标轴,同时内置丰富的鼠标与触摸交互操作。 ## ✨ 核心特性 - ⚡ **高性能渲染**:500 万数据点单图 1 秒内完成显示 (配置不同性能有所差异) - 📊 **多种图表类型**:散点图、折线图、密度图、伪彩图、等高线图、柱状图、条形图、直方图、饼图 - 📏 **多种坐标轴**:线性轴 (Linear)、对数轴 (NegativeLog)、双指数轴 (LogicleLog)、时间轴 (DateTime)、时长轴 (Duration)、字符串轴 (StringAxis) - 🖱️ **丰富交互**:鼠标滚轮缩放、左键拖动平移、触摸屏手势支持、可独立开关缩放/平移 - 🔄 **异步绘制**:后台线程计算 + UI 线程渲染,支持 CancellationToken 取消 - 🏗️ **灵活架构**:多 Series 可共享同一对坐标轴,支持动态创建控件 - 🎨 **可定制外观**:填充色、边框、透明度、虚线样式、压边显示、HSB 渐变配色 - 🔧 **交互可控**:IsZoomEnabled / IsPanEnabled 属性独立控制缩放和平移行为 ## 📦 支持框架 | UI框架 | 版本 | |------|------| | WPF | net472 / net48 / net6.0-windows / net8.0-windows / net10.0-windows | | Avalonia 12.1.1 | net10.0 | ## 🚀 快速开始 ### 1. 安装 NuGet 包 ```bash dotnet add package LooseChart dotnet add package LooseChart.Avalonia ``` 或通过 NuGet 包管理器搜索 `LooseChart` 安装。 ### 2. XAML 中使用图表 支持多种图表类型和轴类型: ```xml ``` 也可使用其他图表类型和轴: | 图表类型 | 说明 | 绑定轴 | |---|---|---| | `ScatterSeries` | 散点图 | XAxis + YAxis (NumberBaseAxis) | | `LineSeries` | 折线图 | XAxis + YAxis (NumberBaseAxis) | | `DensitySeries` | 密度图 | XAxis + YAxis (NumberBaseAxis) | | `PseudoColorSeries` | 伪彩图 | XAxis + YAxis (NumberBaseAxis) | | `ContourSeries` | 等高线图 | XAxis + YAxis (NumberBaseAxis) | | `HistogramSeries` | 直方图 | XAxis + YAxis (NumberBaseAxis) | | `BarSeries` | 柱状图 | YAxis (NumberBaseAxis) | | `HorizontalBarSeries` | 水平条形图 | XAxis (NumberBaseAxis) | | `ArrayLineSeries` | 一维折线图 | YAxis (NumberBaseAxis) | | `PieSeries` | 饼图/环形图 | 无需绑定轴 | ### 3. 后端设置数据 ```csharp var xData = new double[] { 1.0, 2.0, 3.0, 4.0, 5.0 }; var yData = new double[] { 10.0, 20.0, 15.0, 30.0, 25.0 }; this.series.Count = xData.Length; this.series.XSourceConverter = (i) => xData[i]; this.series.YSourceConverter = (i) => yData[i]; this.series.DisplayColor = LooseChart.Utility.RandomColor(); ``` ## 📷 效果预览 ![散点图](doc/散点图.png) ![密度图](doc/密度图.png) ![伪彩图](doc/伪彩图.png) ![等高线图](doc/等高线图.png) ![折线图](doc/折线图.png) ![直方图](doc/直方图.png) ![柱状图和折线图](doc/柱状图和折线图.png) ![条形图](doc/条形图.png) ![饼图](doc/饼图.png) ## 🔗 相关链接 | 链接 | 说明 | |------|------| | [Gitee 开源地址](https://gitee.com/Lvwl-CN/LooseChart) | 国内镜像 | | [更新日志](Log.md) | 版本更新记录 | | [SDK 文档](SDK.md) | 完整 API 文档与使用指南 |