0 0

如何获取获取y轴的值5

如何获取相对于y轴的值呢?也就是相对于自己画出的x,y轴(verticalAxis)的值。

问题补充:
AngelAndAngel 写道
说说应用的场景




您看一下这个图,应该就明白了。

问题补充:
AngelAndAngel 写道
你的这个坐标应该会有最小的标量吧,你的点 是怎么画上去的了,应该也有个坐标或者角度什么的吧


这样吧,我把代码给您粘贴上,您运行一下。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
   xmlns:s="library://ns.adobe.com/flex/spark"
   xmlns:mx="library://ns.adobe.com/flex/mx"
   minWidth="955" minHeight="600" viewSourceURL="srcview/index.html"
   creationComplete="init()"
   >
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.charts.HitData;
import mx.charts.chartClasses.Series;
import mx.charts.events.ChartEvent;
import mx.charts.events.ChartItemEvent;
import mx.charts.series.items.LineSeriesItem;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.ItemClickEvent;

import org.flexunit.internals.namespaces.classInternal;

import spark.components.supportClasses.ItemRenderer;
private var startPoint : Point = new Point();
private var endPoint : Point = new Point();
[Bindable]
private var xData:String;
[Bindable]
private var yData:String;
[Bindable]
private var array:ArrayCollection = new ArrayCollection();
private function init():void
{
array.addItem({date:"2010,12,1",close:"22.58"});
array.addItem({date:"2010,12,2",close:"29.52"});
array.addItem({date:"2010,12,3",close:"28.75"});
array.addItem({date:"2010,12,6",close:"29.38"});
array.addItem({date:"2010,12,7",close:"29.42"});
array.addItem({date:"2010,12,9",close:"40.75"});
array.addItem({date:"2010,12,10",close:"41.06"});
}
//时间转换
public function myParseFunction(s:String):Date {
try{
var a:Array = s.split(",");
var dd:Number;
if(a[2].toString().substr(0,1) == "0"){
dd = Number(a[2].toString().substr(1,1));
}
else{
dd = Number(a[2]);
}

var month1:Number;
if(a[1].toString().substr(0,1) == "0"){
month1 = Number(a[1].toString().substr(1,1))-1;
}
else{
month1 = Number(a[1])-1;
}
var newnewDate:Date = new Date(a[0],month1,dd);
return  newnewDate;      
}
catch(e:Error){
Alert.show(e.message);
}
return null;                   
}


protected function lineChart_itemMouseDownHandler(event:ChartItemEvent):void
{
// TODO Auto-generated method stub
xData = (event.hitData.chartItem as LineSeriesItem).xValue.toString();
//获取摁下时的x轴坐标
yData = (event.hitData.chartItem as LineSeriesItem).yValue.toString();
//获取摁下的y轴坐标
}


protected function ls_mouseMoveHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
if(event.buttonDown){
try{
if(xData != null && xData != ""){
for(var i:int = 0; i < array.length ;i++){
var xDate:String = array[i].date;
if(xData == xDate){
array.setItemAt({date:xDate,close:yData},i);
}
}
}
}catch(e:Error){
Alert.show(e.message);
}
}
}

protected function ls_mouseUpHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
if(event.buttonDown == false){
try{

if(xData != null && xData != ""){
for(var i:int = 0; i < array.length ;i++){
var xDate:String = array[i].date;
if(xData == xDate){
array.setItemAt({date:xDate,close:yData},i);
}
}
}
}catch(e:Error){
Alert.show(e.message);
}
}
}



protected function lineChart_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
Alert.show(lineChart.mouseY + "yyy");
}

]]>
</fx:Script>
<fx:Declarations>
</fx:Declarations>
<s:Panel>


<mx:LineChart id="lineChart"
  showDataTips="true"
  click="lineChart_clickHandler(event)"
  itemMouseDown="lineChart_itemMouseDownHandler(event)"
  mouseMove="ls_mouseMoveHandler(event)"
  mouseUp="ls_mouseUpHandler(event)"  
  dataProvider="{array}"
  width="500"
  height="400">

<!-- vertical axis -->
<mx:verticalAxis>
<mx:LinearAxis id="va" baseAtZero="false"
   title="Price" />
</mx:verticalAxis>

<!-- horizontal axis -->
<mx:horizontalAxis>
<mx:DateTimeAxis dataUnits="days" id="dt" labelUnits="days"
title="Date" parseFunction="myParseFunction" />
</mx:horizontalAxis>

<!-- series -->
<mx:series>

<mx:LineSeries id="ls" xField="date" yField="close" horizontalAxis="{dt}"
   verticalAxis="{va}"   
   itemRenderer="mx.charts.renderers.CircleItemRenderer"
   form="curve"
    
   displayName="Close"/>
</mx:series>
</mx:LineChart>
<mx:Legend id="lg" dataProvider="{lineChart}" direction="horizontal"/>
</s:Panel>
</s:Application>

问题补充:
AngelAndAngel 写道
你的这个坐标应该会有最小的标量吧,你的点 是怎么画上去的了,应该也有个坐标或者角度什么的吧


我的那个点就是随便用鼠标点击某处之后,返回该点的坐标。现在就是要得知该点的坐标。坐标值必须对应Y轴,x轴刻度的坐标。

问题补充:
AngelAndAngel 写道
明白了,用鼠标的话,你自然有方法得到鼠标的坐标是吧。
然后你的x,y轴相对于整个页面位置肯定时候一个位置的,比如偏移位置分别是x1,y1。那么两个做减法不就是相对于x1,y1的坐标啦。

额。。这个结果不是我想要的啊!我想要的是我画的y轴对应的刻度值。

问题补充:
AngelAndAngel 写道
引用
额。。这个结果不是我想要的啊!我想要的是我画的y轴对应的刻度值。

晕,那你转换思维啊用 y1-y就行了。

晕、根本就获取不到对应的值啊。我当然知道反过来减了。但是这样子根本不对。

问题补充:
AngelAndAngel 写道
我再看看

呵呵、麻烦了。谢谢。我都研究了一周了,上网查资料,问人,都没有结果。

问题补充:
AngelAndAngel 写道
我再看看


我其实最后的结果是想要实现鼠标拉着曲线上得一点可以进行拖拽修改。现在最主要的就是要获取到鼠标移动时所获取对应的Y轴的值。
2011年10月13日 12:57
  • 大小: 20 KB

5个答案 按时间排序 按投票排序

0 0

我再看看

2011年10月13日 17:18
0 0

引用
额。。这个结果不是我想要的啊!我想要的是我画的y轴对应的刻度值。

晕,那你转换思维啊用 y1-y就行了。

2011年10月13日 17:00
0 0

明白了,用鼠标的话,你自然有方法得到鼠标的坐标是吧。
然后你的x,y轴相对于整个页面位置肯定时候一个位置的,比如偏移位置分别是x1,y1。那么两个做减法不就是相对于x1,y1的坐标啦。

2011年10月13日 16:13
0 0

你的这个坐标应该会有最小的标量吧,你的点 是怎么画上去的了,应该也有个坐标或者角度什么的吧

2011年10月13日 15:02
0 0

说说应用的场景

2011年10月13日 12:59

相关推荐

    双y轴统计图和条件查询

    - 在事件处理函数中,获取用户的输入值,然后对数据进行筛选。 - 使用所选的图表库更新图表,展示筛选后的数据。 总的来说,双y轴统计图和条件查询是数据可视化的两个关键方面。通过JavaScript,我们可以创建动态、...

    双Y轴折线图(原创)

    3. **定义轴**:对于双Y轴,你需要设置两个不同的`ValueAxis`,每个轴有自己的最小值、最大值和步进值。`MultipleAxesRenderer`可以帮助你管理这两个轴,确保它们正确地在图表上显示。 4. **添加数据**:调用`...

    echarts实现获取datazoom的起始值(包括x轴和y轴)

    此外,文章还提到了如何获取y轴DataZoom的起始值。y轴的DataZoom配置与x轴类似,但通常y轴的值是连续的,所以我们可能需要计算实际的数值范围。以下是如何获取y轴DataZoom起始值的示例: ```javascript let ...

    折线、双Y轴、不交叉、highcharts、按照日期分割线

    在这个特定的场景中,我们关注的是如何使用Highcharts来绘制一个具有双Y轴的折线图,并且这两条折线不会交叉,同时根据日期设置分割线,而且要确保在旧版本的IE浏览器(如IE8)中也能正常工作。 首先,我们需要了解...

    图片绕Y轴一直旋转

    这段代码中,`ofFloat`方法用于定义动画变化的属性和值,"rotationY"表示我们要改变的是图片的Y轴旋转角度,从0度到360度。`setDuration`设置动画执行时间,`setRepeatCount`设置重复次数,`INFINITE`表示无限次循环...

    vb绘制3个Y坐标轴图表源代码

    使用公式`"=MAX(R[1]C[...]:R[...]C[...])"`和`"=MIN(RC[...]:R[...]C[...])"`来分别获取最大值和最小值,并将其存储到变量中。这些公式利用了Excel的R1C1引用样式,这是一种基于行和列编号而不是字母和数字组合的...

    Chart图表控件设置XY轴交点位置

    首先,`Chart`控件的默认配置是让X轴和Y轴在图表的左下角相交。这种设置在很多情况下是合适的,但并不总是满足所有设计需求。例如,如果我们希望图表的原点(即交叉点)位于图表的正中心,我们可以利用`ChartArea`...

    MATLAB科研绘图第十七期双Y轴图

    例如,假设我们有两个数据系列`data1`和`data2`,分别代表不同性质但与同一X轴值相关的量,可以这样操作: ```matlab x = 1:100; data1 = sin(x); data2 = exp(x/10); figure; % 创建新图形窗口 plot(x, data1, 'b...

    QCustoPlot绘制三Y轴图

    在本案例中,我们关注的是如何使用QCustoPlot来绘制一个具有三Y轴的图表,这种类型的图表常用于比较不同尺度或不同性质的数据。下面我们将深入探讨这个主题。 首先,了解QCustoPlot库。QCustoPlot是QT库的一个扩展...

    微信小程序使用echarts获取数据并生成折线图

    微信小程序使用echarts,实现左右双Y轴,动态获取数据,生成折线图 本来使用的是wxcharts,但发现实现不了左右双y轴的效果,就换成echarts 要实现这样的效果,需要以下几步: (1)去github下载插件,放进自己的...

    获取二值图重心

    X1EqualX2 As Boolean '当AX1Y1.X = BX2Y2.X时True,AB两点所在直线为 x轴值=X1,否则 y轴值=l * x轴值 + d l As Double 'y轴值=l * x轴值 + d d As Double 'y轴值=l * x轴值 + d '以下用于解二次方程 a As ...

    ZedGraph图鼠标悬停提示X,Y值

    本知识点主要聚焦于如何使用ZedGraph在绘制图表时实现鼠标悬停提示,显示X轴和Y轴的坐标值。 ZedGraph库提供了强大的自定义能力,使得开发者可以轻松地创建出具有交互性的图表。在“鼠标悬停提示X,Y值”这个功能中...

    C# 在chart控件中绘制曲线,拖动鼠标改变chart曲线的Y轴的值

    本示例探讨如何在Chart控件中绘制曲线,并通过拖动鼠标实时改变曲线的Y轴值,以实现动态交互的效果。这个过程涉及到几个关键步骤:事件处理、坐标映射以及图形更新。 首先,我们需要在窗体上添加一个Chart控件,并...

    Qt获取坐标(图像读取及显示,图像坐标及像素值获取及显示)

    Qt中的坐标系统以左上角为原点,X轴向右增加,Y轴向下增加。我们可以使用`QImage`的`pixel`方法获取指定坐标上的像素值: ```cpp QRgb pixelValue = image.pixel(x, y); ``` `QRgb`是一个无符号整型,包含了RGB三...

    qcustomplot鼠标点击后在坐标轴显示值

    其中,轴负责显示数据的坐标系统,而我们关注的重点是获取鼠标点击位置对应的轴值。 实现这一功能需要以下步骤: 1. **安装和配置QCustomPlot**:在项目中包含QCustomPlot库,并设置必要的属性,例如轴范围、标签...

    屏幕取点工具下载即用

    描述详细介绍了屏幕取点工具的实用功能,能够让用户在进行屏幕操作时迅速获取到鼠标的X轴和Y轴坐标。这样的功能设计,使得用户可以轻松地完成精确的坐标定位。例如,在进行像素级设计时,设计师可以借助这款工具准确...

    ZedGraphXY轴刻度

    - **设置坐标轴标签**:`myPane.XAxis.Title.Text` 和 `myPane.YAxis.Title.Text` 分别设置X轴和Y轴的标题。 - **隐藏坐标轴标题**:`myPane.XAxis.Title.IsVisible = false;` 和 `myPane.YAxis.Title.IsVisible = ...

    获取指定点的RGB值.rar

    2. 坐标系统:图像有自己的坐标系统,通常左上角为原点(0,0),X轴向右,Y轴向下。当你提到“指定点”时,你需要知道这个点在图像坐标系中的位置,通常是(x, y)坐标对。 3. 访问像素:根据图像数据结构,你可以通过...

    View坐标位置XY轴详解

    X轴水平向右延伸,Y轴垂直向下延伸。这是与数学中的笛卡尔坐标系统相反的,因为在计算机图形学中,屏幕通常是朝向用户,因此向下是正方向。 1. **View的位置和大小**: - **Rect对象**:在Android中,通常使用Rect...

Global site tag (gtag.js) - Google Analytics