jacky_zh 发表于 2016-8-2 11:16:19

轴注释

我上传的demo帮我看一下谢谢,
   kvps.Add(new KeyValuePair<object, double>("1m", 2));
            kvps.Add(new KeyValuePair<object, double>("2m", 3));
            kvps.Add(new KeyValuePair<object, double>("3m", 5));
            kvps.Add(new KeyValuePair<object, double>("6m", 6));
            kvps.Add(new KeyValuePair<object, double>("7m", 13));
            kvps.Add(new KeyValuePair<object, double>("8m", 25));只能显示一部分。

还有当书单个值很大的时候就不显示
   kvps.Add(new KeyValuePair<object, double>("1m", 2));
            kvps.Add(new KeyValuePair<object, double>("2m", 30));
            kvps.Add(new KeyValuePair<object, double>("3m", 60));
            kvps.Add(new KeyValuePair<object, double>("6m", 90);
            kvps.Add(new KeyValuePair<object, double>("7m", 120));
            kvps.Add(new KeyValuePair<object, double>("8m", 150));



jacky_zh 发表于 2016-8-2 11:42:23

chart.Reset(true);
            List<KeyValuePair<object, double>> kvps = new List<KeyValuePair<object, double>>();
            y = new double { 1, 2,3,4, 5,6,7,8,9,10 };
            double[] b = new double { 30,40,50,60,70,80 };
            kvps.Add(new KeyValuePair<object, double>("1m", 30));
            kvps.Add(new KeyValuePair<object, double>("2m", 40));
            kvps.Add(new KeyValuePair<object, double>("3m", 50));
            kvps.Add(new KeyValuePair<object, double>("6m", 60));
            kvps.Add(new KeyValuePair<object, double>("7m", 70));
            kvps.Add(new KeyValuePair<object, double>("8m", 80));
            chart.Data.Children.Add(
            new XYDataSeries() { ValuesSource = y,XValuesSource=b }

            );
            chart.ChartType=ChartType.Line;
            chart.View.AxisX.ItemsSource = kvps;
代码这样可以了。但是数据量大的时候会很慢

jacky_zh 发表于 2016-8-2 11:44:39


chart.Reset(true);
            List<KeyValuePair<object, double>> kvps = new List<KeyValuePair<object, double>>();
            y = new double { 1, 2,3,4, 5,6,7,8,9,10 };
            double[] b = new double { 30,40,50,60,70,80 };
            kvps.Add(new KeyValuePair<object, double>("1m", 30));
            kvps.Add(new KeyValuePair<object, double>("2m", 40));
            kvps.Add(new KeyValuePair<object, double>("3m", 50));
            kvps.Add(new KeyValuePair<object, double>("6m", 60));
            kvps.Add(new KeyValuePair<object, double>("7m", 70));
            kvps.Add(new KeyValuePair<object, double>("8m", 80));
            chart.Data.Children.Add(
            new XYDataSeries() { ValuesSource = y,XValuesSource=b }

            );
            chart.ChartType=ChartType.Line;
            chart.View.AxisX.ItemsSource = kvps;
代码这样可以了。但是数据量大的时候会很慢

而且缩小不能自适应。我这边会有3w条数据.不能自适应会很麻烦

Alice 发表于 2016-8-2 11:51:24

jacky_zh 发表于 2016-8-2 11:44


wpf平台,如果是一张图表上同时显示3w的数据,性能应该会有所限制。
我们都知道绘制本身就是很耗费性能的。
你可以看下设置RenderMode.Bitmap,会不会对性能有提升。
博客参考:http://blog.gcpowertools.com.cn/post/2013/11/21/drawing-tooltips-in-c1wpfchart.aspx

另外对于你提到的大数据量,还要同时显示出来,自适应的问题,只能自己去通过调节轴的间隔(MajorUnit/MinorUnit)去调整。因为缩放会影响大小,有可能会显示不下,这个只能自己写代码调整。

如果是在性能上考虑比较多,因为wpf绘制性能会有所影响,可以考虑试试2016V2版本新出的控件FlexChart,比C1Chart的性能上有很大提升(http://www.gcpowertools.com.cn/products/flexchart/)

jacky_zh 发表于 2016-8-2 12:20:40

我现在用的chart写很多东西,改成flex会要改很多东西吗

jacky_zh 发表于 2016-8-2 13:03:16


美女,你看一下,这样写代码有问题吗。为什么显示不出来

jacky_zh 发表于 2016-8-2 13:10:15

已经解决,美女那个flexchart和chart 写 法大吗

Alice 发表于 2016-8-2 14:13:22

jacky_zh 发表于 2016-8-2 13:10
已经解决,美女那个flexchart和chart 写 法大吗

两个不同的控件接口肯定是有所区别的。
页: [1]
查看完整版本: 轴注释