1

我正在开发一个情节/图表/图形。我想在以 10 为底的 Log 上缩放 Y 轴 - 所以我想要 Y 轴上的值 0、10、100、1000、10000、100000。我也可以得到比例,但想要相同距离的值。附上我得到的和我想要的快照:

我从代码中得到的结果: 这就是我得到的

我正在寻找的结果: 这是从 Excel 生成的图。在我的应用程序中,我想要这个结果,即数字之间的距离相等。

我用来缩放 Y 轴的代码:

public class LogConverter : IValueConverter
{

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        double x = double.Parse(value.ToString());
        int y = (int)x;
        switch (y)
        {
            case 0:
            case 10:
            case 100:
            case 1000:
            case 10000:
            case 100000: 
            case 1000000:
            case 10000000:
                Console.WriteLine("Log = " + value);
                return y.ToString();
            default:
                return null;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

我设置 Y 轴的 Min = 0 & Max(动态),其间隔设置为 10。知道如何实现这个目标吗?在 WPF 中有可能吗?非常感谢任何帮助。

4

3 回答 3

2

您可能必须创建自己的对数轴。这个博客有一个例子:WPF & Silverlight Charting: A Logarithmic Axis

于 2013-09-17T21:42:52.073 回答
0

我使用 OxyPlot 开源来实现我的目标

于 2013-09-18T08:35:49.190 回答
0

就像 Tvd 说的,你可以使用 OxyPlot。

如果你看这里:OxyPlot Documentation它说文档正在建设中。无论如何,进入你的代码,你可以这样做:

var logarithmicAxis = new LogarithmicAxis();

您可以使用 3 个构造函数……从那里开始应该一帆风顺。

于 2013-10-19T13:37:37.090 回答