Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >查找当前视图端口的最大值/最小值

查找当前视图端口的最大值/最小值
EN

Stack Overflow用户
提问于 2013-09-10 10:36:06
回答 1查看 1.7K关注 0票数 1

问题:如何使用DateTimeCategoricalAxis找到RadCartesian图表当前视图的最大和最小x轴值

我可以很容易地找到数据集的最大值/最小值,如果我要使用一个DateTimeContinousAxis(不幸的不是一个选项),我可以简单地使用ActualRangeActualVisibleRange。然而,使用DateTimeCategoricalAxis是一个完全不同的故事,因为我无法准确地找到当前视图端口中的数据点。我甚至尝试使用PlotAreaClip,但都没有效果。更不用说,PlotAreaClip没有考虑缩放大小,这就成了一个问题。

任何帮助都将不胜感激!

下面是我的代码的简化版本:

XAML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<Grid>
    <telerik:RadCartesianChart ZoomChanged="Zooming">

        <telerik:RadCartesianChart.Behaviors>
           <telerik:ChartPanAndZoomBehavior DragMode="Pan" 
                                             PanMode="Both" 
                                             ZoomMode="None" />
        </telerik:RadCartesianChart.Behaviors>

        <telerik:RadCartesianChart.Series>
            <telerik:OhlcSeries ItemsSource="{Binding Bars}" 
                                OpenBinding="Open"
                                HighBinding="High"
                                LowBinding="Low"
                                CloseBinding="Close"
                                CategoryBinding="Date">
            </telerik:OhlcSeries>
         </telerik:RadCartesianChart.Series>

        <telerik:RadCartesianChart.HorizontalAxis>
            <telerik:DateTimeCategoricalAxis DateTimeComponent="Ticks" 
                                             ShowLabels="False"
                                             PlotMode="OnTicks" 
                                             MajorTickInterval="100">
            </telerik:DateTimeCategoricalAxis>
        </telerik:RadCartesianChart.HorizontalAxis>

        <telerik:RadCartesianChart.VerticalAxis>
            <telerik:LinearAxis HorizontalLocation="Right" 
                                RangeExtendDirection="Both"
                                Minimum="{Binding PriceMinimum, Mode=OneWay}"
                                Maximum="{Binding PriceMaximum, Mode=OneWay}"
                                MajorStep="{Binding PriceMajorStep, Mode=OneWay}" />
         </telerik:RadCartesianChart.VerticalAxis>

        <telerik:RadCartesianChart.Grid>
            <telerik:CartesianChartGrid MajorXLinesRenderMode="All" 
                                        MajorLinesVisibility="XY" />
        </telerik:RadCartesianChart.Grid>

    </telerik:RadCartesianChart>
</Grid>
</UserControl>

背后的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void Zooming(object sender, ChartZoomChangedEventArgs e)
    {
        RadCartesianChart chart = sender as RadCartesianChart;
        if (chart != null)
        {
            //PlotAreaClip.Location.X (PlotAreaClip.X also works) to get left side of clip
            //PlotAreaClip.Right to get right side of clip
            DataTuple dtMin = chart.ConvertPointToData(new Point(chart.PlotAreaClip.Location.X - Math.Abs(chart.PanOffset), chart.PlotAreaClip.Y), chart.HorizontalAxis, chart.VerticalAxis);
            DataTuple dtMax = chart.ConvertPointToData(new Point(chart.PlotAreaClip.Right - Math.Abs(chart.PanOffset), chart.PlotAreaClip.Y), chart.HorizontalAxis, chart.VerticalAxis);
            object xMin = dtMin.FirstValue;
            object xMax = dtMax.FirstValue;
            //these numbers are VERY inconsistent, especially when you zoom in!
        }
    }

提到的远程控制可以找到这里

如果有人有任何建议,我会非常感激的!谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-16 11:05:07

在进行了一些调查之后,我找到了这个线程的解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private DataPoint[] FindFirstLastVisiblePoints(CategoricalSeries series)
{
    DataPoint firstPoint = null;
    DataPoint lastPoint = null;
    RadRect plotArea = this.radChart1.PlotAreaClip;

    foreach (DataPoint point in series.DataPoints)
    {
        if (point.LayoutSlot.IntersectsWith(plotArea))
        {
            if (firstPoint == null)
            {
                firstPoint = point;
            }
            lastPoint = point;
        }
    }

    return new DataPoint[] { firstPoint, lastPoint };
}

基本上,该方法接受当前的PlotAreaClip并返回当前ViewPort中的第一个也是最后一个数据点。我真的希望这对将来的其他人有帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18726453

复制
相关文章
Java 查找 List 中的最大值、最小值Java 查找 List 中的最大值、最小值
Java 查找 List 中的最大值、最小值 java> List<Long> list = new ArrayList(); java.util.List<java.lang.Long> list = [] java> list.add(1L) java.lang.Boolean res1 = true java> list.add(2L) java.lang.Boolean res2 = true java> Collections.max(list) java.lang.Long res3 = 2 j
一个会写诗的程序员
2018/08/17
3.9K0
Excel公式技巧55:查找并获取最大值/最小值所在的工作表
在《Excel公式技巧54:在多个工作表中查找最大值最小值》中,我们在MAX/MIN函数中使用多工作表引用来获取最大值/最小值。现在更进一步,我们想要获取最大值/最小值所在的工作表名称。
fanjy
2020/09/25
2.7K0
Excel公式技巧55:查找并获取最大值/最小值所在的工作表
java integer最大值_java int型最大值/最小值,最大值+1,最小值-1
java中,int型变量是有符号整形变量。int型变量占用4个字节(32bit位)。
全栈程序员站长
2022/10/04
2K0
C语言丨如何查找数组中的最大值或者最小值?图文详解
查找数组(序列)中最大值或最小值的算法有很多,接下来我们以 {3,7,2,1} 序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助分治算法解决。
C语言中文社区
2022/05/31
8.8K0
C语言丨如何查找数组中的最大值或者最小值?图文详解
Excel公式技巧54: 在多个工作表中查找最大值/最小值
要在Excel工作表中获取最大值或最小值,我们马上就会想到使用MAX/MIN函数。例如,下图1所示的工作表,使用公式:
fanjy
2020/09/17
11.8K0
Excel公式技巧54: 在多个工作表中查找最大值/最小值
较快速在一个数组中查找最大值和最小值
#include<stdio.h> #define MAX 100001 int a[MAX]; int n; /* 时间复杂度为3*n/2 */ void swap(int i) { if(i==n-1) return ; if(a[i]>a[i+1]) { int temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } void sort() { int i; for(i=0;i<n;i++) { swap(i); i++; }
chain
2018/08/02
3.6K0
Java int 最大值 最小值
从JDK1.0开始,Integer中就定义了MIN_VALUE和MAX-VALUE两个常量:
week
2018/12/12
4.8K0
05:最大值和最小值的差
05:最大值和最小值的差 总时间限制:1000ms内存限制:65536kB描述 输出一个整数序列中最大的数和最小的数的差。 输入第一行为M,表示整数个数,整数个数不会大于10000; 第二行为M个整数,以空格隔开,每个整数的绝对值不会大于10000。输出输出M个数中最大值和最小值的差。样例输入 5 2 5 7 4 2 样例输出 5 #include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #include<cmath> u
attack
2018/04/03
2.8K0
python 字典最大值、最小值、排序
prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75 }
用户5760343
2019/09/25
1.7K0
根据端口号查找服务,根据进程查找端口,查找开放的所有端口
 系统信息 [root@backup ~]# uname -r 2.6.32-696.el6.x86_64 [root@backup ~]# uname -m x86_64 [root@backup ~]# cat /etc/redhat-release CentOS release 6.9 (Final) 根据端口号22查找对应的服务名称 telnet 10.0.0.41 22 nmap -p 22 10.0.0.41 nc 10.0.0.41 22 ss -lntup | grep 22 net
醉生萌死
2018/11/05
2.6K0
hive 获取数组的最大值和最小值
select exploded_column,XXXX.column2 from XXXX LATERAL VIEW explode(XXXX.column1) t1 as exploded_column
week
2022/01/07
4.9K0
js获取数组中的最大值最小值
遍历方法: var tmp = [1,12,8,5]; var max = tmp[0]; for(var i=1;i<tmp.length;i++){ if(max<tmp[i])max=tmp[i]; } console.log(max); 使用apply方法: var a = [1,2,3,5]; console.log(Math.max.apply(null, a));//最大值 console.log(Math.min.apply(null, a));//最小值 多维数组可以这
deepcc
2018/05/16
36.5K0
java获取数组最大值索引_java数组最大值最小值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/29
2.6K0
较快速在一个数组中查找最大值和最小值(2)
/*分治法*/ #include<iostream> #include<string> #include<vector> #include<fstream> using namespace std; int a[16]={1,3,5,7,9,11,14,2,4,6,8,10,12,14,16,18}; int b[9]={3,1,5,9,4,2,7,6,10}; int t[2]; vector<string> splitEx(const string& src, string separate_chara
chain
2018/08/02
2.5K0
javascript – 数组中日期的最小值/最大值(转)
如何从日期数组中找出最小和最大日期?目前,我创建一个这样的数组: var dates = []; dates.push(new Date("2011/06/25")) dates.push(new Date("2011/06/26")) dates.push(new Date("2011/06/27")) dates.push(new Date("2011/06/28")) 代码用IE,FF,Chrome测试并正常工作: var dates=[]; dates.push(new Date("2011/06/
山河木马
2019/03/05
4.6K0
O(1)最大值最小值的均值滤波算法
之前做过最大值最小值滤波基本上复杂度是非常高的,因为涉及到遍历w*h的滑动窗口中的所有值然后求出这个窗口所有值的最大和最小值。尽管可以使用sse优化,但速度仍然快不起来,最近在ImageShop博主的一篇博客中遇见了这篇论文,https://files-cdn.cnblogs.com/files/Imageshop/O(1)%E6%9C%80%E5%A4%A7%E5%80%BC%E6%9C%80%E5%B0%8F%E5%80%BC%E7%AE%97%E6%B3%95.pdf ,讲的就是O(1)实现最大最小值滤波,所以希望与大家一起分享这个算法。
BBuf
2019/12/04
2K0
O(1)最大值最小值的均值滤波算法
第N个最大值/最小值:Large/Small
我们来生成一组随机整数作为案例 输入 =RANDBETWEEN(1,100) 然后下拉到A1:A10 好了 我们复制→粘贴为值 以防它再次随机改变 这是我们的案例数据 在实际的应用中 我们除了求最大最小的那个值 还经常要求第N个,例如第2个,第3个最大最小值 例如 我们知道了第一名分数是99 我们想知道第二名分数是多少 以知道他们的差距有多大 我们用Large和Small来求最大值和最小值 这是一对相反数 成对记起来更容易 Large(数据范围,想要的第N个最大值) 在我们的例子中 如果要求第
但老师
2022/03/22
5600
第N个最大值/最小值:Large/Small
最大值,最小值和平均数
这篇也是非常快速而简单 MAX (而不是iMax) 最大值 参数和SUM一样 随便点随便拉 返回这组数中最大的那个 当然不包括文本 MIN 最小值 参数同上 同样是不含文本 取最小的那个数值 AVERAGE (而不是Avengers) 求平均值 参数还是一样... 随便点随便拉 同样还是忽略文本 不过在全都是非数值的情况下会报除数为零错误 因为分母为0啊 以上
但老师
2022/03/22
7770
最大值,最小值和平均数
查找排序数组的最小值(js)
在由小到大已排序的未知数组中,以某个元素为支点旋转(好比将序列沿着前后顺序围成环移动)得到了一个数组,请找出该数组的最小值。比如倘若原数组(对我们而言,并不知道原数组是什么)为0,1,2,3,4,5,6,7,可能经过旋转后得到数组 3,4,5,6,7,0,1,2。请找出旋转后数组的最小值(假定数组中没有重复数字)。
用户1332428
2018/07/30
2.9K0
【PTA】交换最小值和最大值 (15分)
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
Regan Yue
2021/09/16
1.7K0

相似问题

查找大于当前的最小值

20

查找最大值和最小值

453

查找最小值和最大值

30

查找局部最小值/最大值

11

查找最小值和最大值

42
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文