asp.net MVC 5 - 融合图表 - 将图像添加到散点图(XML,C# MVC)

本文关键字:MVC 散点图 XML 添加 net 融合 asp 图像 | 更新日期: 2023-09-27 17:56:24

我对融合图表很陌生,正在努力将图像添加到我的融合图表中。请原谅我,我什至不知道我应该如何问这个问题,所以如果您希望我添加会有所帮助的数据,请告诉我。

我目前通过绘制 x 和 y 点并设置锚侧和锚半径来工作,但我想用图像替换它们,我不知道该怎么做。

这是我使用 foreach 填充 x 和 y 轴的部分:

strXML += "<dataset  drawline= '0' seriesname= 'Peak' color= '#ff0000' anchorsides= '3' anchorradius= '5' anchorbgcolor= '#ff0000' anchorbordercolor= '#ff0000'>";
        foreach (var cat in CalcList)
        {
            if (cat.isPeak)
            {
                strXML += "<set y='" + cat.Elevation + "' x='" + cat.Accumulated_Length + "'/>";
            }
        }
        strXML += "</dataset>";

我去了FusionChart网站,我看到他们做了这样的事情:

<annotations width="500" height="300" autoscale="1">
    <annotationgroup id="user-images" xscale_="20" yscale_="20">
        <annotation id="butterFinger-icon" type="image" url="http://static.fusioncharts.com/sampledata/images/butterFinger.png" x="$xaxis.label.0.x - 30" y="$canvasEndY - 150" xscale="50" yscale="40" />
        <annotation id="tom-user-icon" type="image" url="http://static.fusioncharts.com/sampledata/images/snickrs.png" x="$xaxis.label.1.x - 26" y="$canvasEndY - 141" xscale="48" yscale="38" />
        <annotation id="Milton-user-icon" type="image" url="http://static.fusioncharts.com/sampledata/images/coffee_crisp.png" x="$xaxis.label.2.x - 22" y="$canvasEndY - 134" xscale="43" yscale="36" />
        <annotation id="Brian-user-icon" type="image" url="http://static.fusioncharts.com/sampledata/images/100grand.png" x="$xaxis.label.3.x - 22" y="$canvasEndY - 131" xscale="43" yscale="35" />
    </annotationgroup>
</annotations>

所以我自己试过这个,但它给了我一个错误:

 //Peak Images
        strXML += "<annotations>";
        strXML += "<annotationgroup>";
         foreach (var cat in CalcList)
        {
            if (cat.isPeak)
            {
                strXML += "<annotation id='Test' type='image' url='http://static.fusioncharts.com/sampledata/userimages/1.png' x='$dataset.0.set." + iPeakCount +".x-" + cat.Elevation + "' y='$dataset.0.set." + iPeakCount + ".y-" + cat.Accumulated_Length + "'/>  ";
                iPeakCount++;
            }
        }
        strXML += "<annotationgroup>";
        strXML += "<annotations>";

但是我从FusionChart中得到了"无效数据"。

我们以前使用 json 作为测试做过类似的事情,所以我们知道这是可能的 - 除了我想使用 XML(我已经做到了),但只是不知道如何做到这一点:( - 下面是代码片段:

                    "annotations": {
                        "groups": [
                            {
                                "id": "anchor-highlight",
                                "items": [
                                    {
                                        "id": "high-star",
                                        "type": "image",
                                        "url": "http://static.fusioncharts.com/sampledata/userimages/1.png",
                                        "x": "$dataset.0.set.11.x-25",
                                        "y": "$dataset.0.set.11.y-25"
                                    },
                                    {
                                        "id": "high-star",
                                        "type": "image",
                                        "url": "http://static.fusioncharts.com/sampledata/userimages/1.png",
                                        "x": "$dataset.0.set.6.x-25",
                                        "y": "$dataset.0.set.6.y-25"
                                    }
                        ]
                            }
                        ]
                    },
我完全错过了

情节还是我错过了什么?

请温柔地对待我,这对我来说都是新的,我挣扎了很多。

提前谢谢你。

asp.net MVC 5 - 融合图表 - 将图像添加到散点图(XML,C# MVC)

自己又找到了答案...

下面是代码:

strXML += "<annotations>";
strXML += "<annotationgroup>";
        foreach (var cat in CalcList)
        {
            if (cat.isPeak)
            {
                strXML += "<annotation id='Peak" + iPeakCount + "' type='image' url='/Images/Peak.png' x='$dataset.2.set." + iPeakCount + ".x-12' y='$dataset.2.set." + iPeakCount + ".y-12' xscale='6' yscale='6' />";
                iPeakCount++;
            }
        }
strXML += "</annotationgroup>";
strXML += "</annotations>";

您会注意到以下内容:

x='$dataset.2.set." + iPeakCount + ".x-12' y='$dataset.2.set." + iPeakCount + ".y-12'

数字 2 表示它必须显示在我的第三个数据集上(数据集从 0 开始)。以下是其中一个数据集:

strXML += "<dataset  drawline= '1' seriesname= 'Elevation' color= '#0045ff' anchorsides= '0' anchorradius= '0' anchorbgcolor= '#0045ff' anchorbordercolor= '#0045ff'>";
        foreach (var cat in CalcList)
        {
            if (cat.Elevation >= 0)
            {
                strXML += "<set y='" + cat.Elevation + "' x='" + cat.Accumulated_Length + "'/>";
            }
        }
strXML += "</dataset>";

希望这对其他人有所帮助...