Microcharts是一個優(yōu)秀的開源項目,基于SkiaSharp實現(xiàn)澡绩,項目地址 》士ǎ可以幫助我們實現(xiàn)各種圖表功能,如不能滿足需求可以嘗試oxyplot揪胃。
此文只是一個簡單的譯文,原文地址:https://blog.xamarin.com/microcharts-elegant-cross-platform-charts-for-any-app/
Microcharts 提供了對Android喊递、iOS阳似、macOS、UWP和Xamarin.Forms支持撮奏,在任何平臺中你都可以方便的使用它。
Data Entries
Microcharts通過Entry加載數(shù)據(jù)以顯示成各種類型圖表泽疆。
Entry
包含哪些值:
- 一個float類型值(必須的)
-
Label
關(guān)聯(lián)Entry的描述文本 -
ValueLabel
格式化顯示的值 -
Color
關(guān)聯(lián)Entry顯示的顏色
示例代碼:
var entries = new []
{
new Entry(212)
{
Label = "UWP",
ValueLabel = "212",
Color = SKColor.Parse("#2c3e50")
},
new Entry(248)
{
Label = "Android",
ValueLabel = "248",
Color = SKColor.Parse("#77d065")
},
new Entry(128)
{
Label = "iOS",
ValueLabel = "128",
Color = SKColor.Parse("#b455b6")
},
new Entry(514)
{
Label = "Shared",
ValueLabel = "514",
Color = SKColor.Parse("#3498db")
} };
Chart Types
下面會列出Microcharts目前支持的圖表類型(這是一個開源項目將來可能會增加新的圖表)
BarChart(柱形圖)
var chart = new BarChart() { Entries = entries };
LineChart(線形圖)
var chart = new LineChart() { Entries = entries };
PointChart(散點圖[單點])
var chart = new PointChart() { Entries = entries };
RadialGauge(徑向儀表盤)
var chart = new RadialGaugeChart() { Entries = entries };
Donut(餅圖)
var chart = new DonutChart() { Entries = entries };
Radar(雷達(dá)圖)
var chart = new RadarChart() { Entries = entries };
Displaying a Chart
接下來要做的就是顯示圖表。
<ContentPage>
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:microcharts="clr-namespace:Microcharts.Forms;assembly=Microcharts.Forms"
xmlns:local="clr-namespace:Microcharts.Samples.Forms"
x:Class="Microcharts.Samples.Forms.MainPage">
<microcharts:ChartView x:Name="chartView" />
</ContentPage>
聲明命名空間xmlns:microcharts="clr-namespace:Microcharts.Forms;assembly=Microcharts.Forms"
株依,其次定義ChartView
對象延窜。
在cs文件中對ChartView的Chart
屬性進(jìn)行賦值:this.chartView.Chart = chart;
Chart屬性是一個
bindable
屬性,所以我們可以使用綁定的形式實現(xiàn)同樣的效果。
Tweaking the Visual Aspect
對于每種圖表我們可以進(jìn)行簡單的修改渲染出不同額效果逆瑞,如LineChart默認(rèn)顯示為:
對線條和點的屬性做些修改:
var chart = new LineChart()
{
Entries = entries,
LineMode = LineMode.Straight,
LineSize = 8,
PointMode = PointMode.Square,
PointSize = 18,
};
會呈現(xiàn)如下效果:
更多使用請參考示例代碼获高,最后要說明的是Microcharts是一個活躍的開源項目,會持續(xù)增加更多圖表支持念秧,如果你有能力或問題你可以為它做更多貢獻(xiàn)。