2010年9月3日星期五

C# Google Chart API

昨天找到一個for C#的 Google Chart API: GoogleChartSharp
很多東西都基本上齊全, 但裡面好像沒有提供 text format with scaling 的功能(找不到"chds"字串)
我做了個簡單的湊合一下

在Chart.cs裡加了一段 :

private string dataScale;
public void SetDataScale(int xLowerBound, int xUpperBound, int yLowerBound, int yUpperBound)
{
    this.dataScale += String.Format("{0},{1},{2},{3}", xLowerBound, xUpperBound, yLowerBound, yUpperBound);
}


protected virtual void collectUrlElements()
{
    .........

    // data scale
    if(dataScale != null)
    {
        urlElements.Enqueue(String.Format("chds={0}", this.dataScale));
    }

    .........
}
我後來才發現google提供的encode方法最高支援4095的int, 而且用extended encoding的話,  scaling好像是自動的, 即不能用"chds"字串來設定data scale("chds"只適用於text format)

所以只好把原來的data 乘以一個scalar(maxValue就是圖表資料中的最大值)

double scalar = 4095 / (double)maxValue;
dataValue *= scalar;
這樣就可(不知是不是完全)解決scaling的問題

沒有留言:

發佈留言