LiveCharts文档-3开头-3类型和设置

LiveCharts文档-3起来-3类型和安

不知不觉中于蜂桶的山坳里发现了就尊大熊猫雕塑。她仿佛平静,但丝丝苦意却露出眼角,她了处于同一种植无法用言语来讲述的那种痛痛的思着——

型以及装置

就同样有些好之机要,涉及到LiveCharts的骨干成单元的牵线
LiveChart可以绘制任何类型,甚至是由定义之种,且无丢强类型语言的便宜,原理非常粗略,当您传递一个泛型集合的当儿,LiveChart会拉取X和Y值(笛卡尔Chart),你不需定义每个项目来绘制它。库已经知道怎么绘制,double,int,decimal,short
,float,long还发任何特别规划之类型,ObservableCollection,ObservablePoint,ScatterPoint,DateTimePoint,HeatPoint,OHLPoint,PolarPoint.所以的这些项目且得以以性能改变的时刻通知chart进行创新,下面的事例就是动了这些项目,你为堪自己定义自己欲之种。

var doubleValues = new ChartValues<double> { 1, 2 ,3 };
var intValues = new ChartValues<int> { 1, 2 ,3 };

//the observable value class is really helpful, it notifies the chart to update
//every time the ObservableValue.Value property changes
var observableValues = new ChartValues<LiveCharts.Defaults.ObservableValue> 
{ 
    new LiveCharts.Defaults.ObservableValue(1), //initializes Value property as 1
    new LiveCharts.Defaults.ObservableValue(2),
    new LiveCharts.Defaults.ObservableValue(3)
};

您得小心到,chart总是使用X,Y坐标来绘制(笛卡尔坐标系),但是一个组double,int,long值库也能够绘制是怎一转事?
大简短,X是立组数组当中的index,Y就是您传递的价。当然,这不过是若采取横向排的上是这样,如果你使用纵向序列,那么X就是传递的值,Y就是Index。

var myValues = new LiveCharts.ChartValues<double>
{
  10, //index 0
  6,  //index 1
  9,  //index 2
  2,  //index 3
  7   //index 4
}

事实上的坐标是:
图片 1

早就定义了拉取坐标的安排:
横向坐标:

new CartesianMapper<double>()
  .X((value, index) => index) //use the index as X
  .Y((value, index) => value) //use the value as Y

纵向坐标:

new CartesianMapper<double>()
  .X((value, index) => value) //use the value as X
  .Y((value, index) => index) //use the index as Y

X和Y只是对笛卡尔Chart有必要,但是当您想只要绘制一个雷达图(半径和角度)或者金融Chart的时节,该怎么布局?所以自己创建了一个
Mappers类型,这个路会回一个对mapper的实例,有过多取舍,Xy,Financial,Bubble和Polar,上面的mappers将会给替代为:

Mappers.Xy<double>()
  .X((value, index) => index) //use the index as X
  .Y((value, index) => value) //use the value as Y

脚是多重mappers,这些是因你的情状来设定的。

//X and Y
var mapper = Mappers.Xy<ObservablePoint>() //in this case value is of type <ObservablePoint>
    .X(value => value.X) //use the X property as X
    .Y(value => value.Y); //use the Y property as Y

//X, Y and Weight
var mapper = Mappers.Bubble<BubblePoint>()
                .X(value => value.X)
                .Y(value => value.Y)
                .Weight(value => value.Weight);

//Angle and Radius
var mapper = Mappers.Polar<PolarPoint>()
    .Radius(value => value.Radius) //use the radius property as radius for the plotting
    .Angle(value => value.Angle); //use the angle property as angle for the plotting

//Open, High, Low and Close
var mapper = Mappers.Financial<OhlcPoint>()
                .X((value, index) => index)
                .Open(value => value.Open)
                .High(value => value.High)
                .Low(value => value.Low)
                .Close(value => value.Close);

君得经过多种方式设定mappers:
1.Global级别
这种艺术以公的应用程序级别保存设置,每次LiveCharts检查Chart
Values实例中之花色的时,它还见面使这mapper,除非SeriesCollection
mapper和Series mapper是null。

var mapper1 = Mappers.Xy<int>()
  .X((value, index) => index) 
  .Y(value => value);
LiveCharts.Charting.For<int>(mapper1, SeriesOrientation.Horizontal); //when horizontal

var mapper2 = Mappers.Xy<int>()
  .X(value => value) //use the value (int) as X
  .Y((value, index) => index);
LiveCharts.Charting.For<int>(mapper2, SeriesOrientation.Vertical); //when vertical

另外一个事例就是是于定义类型,ObseravableCollection类只包含两只特性,X和Y,请小心这次自己叫横向和纵向使用了扳平的装,并从未传递第二只参数。

For<ObservablePoint>(Mappers.Xy<ObservablePoint>()
  .X((value, index) => value.X) 
  .Y(value => value.Y));`

要此还非是深懂,可以错过源码里找到更多细节。
2.Series Collection级别
而是当你定义一个Series
Collection的时节,你呢得以传递一个默认的配置,这个布局将会见盖掉全局配置,除非Series级别的布是null。

var mapper = Mappers.Xy<MyClass>().X(v => v.XProp).Y(v => v.YProp);
var seriesCollection = new SeriesCollection(mapper);
myChart.SeriesCollection = seriesCollection;

3.特定的Series级别
最终,如果只是为设定一个Series,你得定义一个特定的mapper用于其,这个配置会覆盖掉Global和Series
Collection级别的配备。

var mapper = Mappers.Xy<MyClass>().X(v => v.XProp).Y(v => v.YProp);
var pieSeries = new PieSeries(mapper);

大部分丁周边有一个破绽百出的认,认为首先单意识大熊猫的人数是法国人口阿尔芒·戴维(法国招教士,受巴黎当历史博物馆派出至中国征集动植物标本)。这个结论其实是不过荒唐的,是受不了推敲的,难道中国从未人了为?可见当阿尔芒·戴维是西方人率先涂鸦目睹大熊猫时,他那种无比兴奋之精神状态我们已经力不从心想见了,但他最少忽略了中国总人口以及大熊猫几千年来协调共存的即刻段历史了。这里权且不论这种违背逻辑的缘起,只是可以毫无疑问地说,从夫时空的节点上看,中国大熊猫的影像第一糟超过出了边界,而且是幕后地偷运出国的。

通Chart自动更新

卿可以实现IObservableChartPoint接口,从而实现当起定义类型的特性改变的当儿,Chart会自动进行更新。下一个例证你以见面看出
ObservableValue类型的定义,看看她是怎么当Value改变之下通知Chart改变的。这个可怜好明,你不过待每次在设定Value属性的值的时节,触发一个PointChanged事件就是足以了。

public class ObservableValue : IObservableChartPoint
{
    private double _value;
    public ObservableValue()
    {

    }

    public ObservableValue(double value)
    {
        Value = value;
    }

   public event Action PointChanged;
   public double Value
   {
       get { return _value; }
       set
       {
           _value = value;
           OnPointChanged();
       }
   }

   protected void OnPointChanged()
   {
       if (PointChanged != null) PointChanged.Invoke();
   }
}

本节情了

沉凝着之大猫熊

起第一特熊猫离开宝兴晚底一百几近年里,大熊猫作为国宝已经遍及世界各地。据说在大街小巷繁育的大猫熊,有80%底基因和宝兴有关。然而,在挚爱大熊猫的同波又同样波的浪潮声中,宝兴人民也保护大熊猫所提交的竭力和献,又发生微人理解吧?老天好像开了一个充分十分玩笑——大熊猫故乡之熊猫因输出使不息缩减,剩下的且是来老弱病残和留守儿童。

当黑板成为居家装饰

抚今追昔一首呼吸的诗文

世界最高的擂台格斗——“全球空中擂台赛”

其三皇家王婆说

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图