在WPF中使用D3创建等值线图

在WPF中使用D3创建等值线图,wpf,xaml,dynamic-data-display,Wpf,Xaml,Dynamic Data Display,我试图使用D3的等值线图来显示一组数据的等高线图,其中每个像素都有X,Y和强度。 到目前为止,我从库中筛选得到的信息是,一个等值线图有一个数据源属性,它是IDataSource2D(Double)。 所以我在代码中创建了一个,但我不知道如何用任何数据填充它。 如果有人在WPF下成功地使用了D3的等值线图,我将非常感谢关于这一点的提示。 我已经搜索了好几个小时了,我能找到的只是3年前“CX Gamer”的一篇帖子,但他似乎不再有代码问题了。 提前感谢您的帮助 弗朗西斯。弗朗西斯 我查看了动态数据显

我试图使用D3的等值线图来显示一组数据的等高线图,其中每个像素都有X,Y和强度。 到目前为止,我从库中筛选得到的信息是,一个等值线图有一个数据源属性,它是IDataSource2D(Double)。 所以我在代码中创建了一个,但我不知道如何用任何数据填充它。 如果有人在WPF下成功地使用了D3的等值线图,我将非常感谢关于这一点的提示。 我已经搜索了好几个小时了,我能找到的只是3年前“CX Gamer”的一篇帖子,但他似乎不再有代码问题了。 提前感谢您的帮助

弗朗西斯。

弗朗西斯

我查看了动态数据显示库,并从示例中获得了实现这一点的灵感

1。用XAML描述图形

<Grid>
    <d3:ChartPlotter Name="plotter">
        <!--to display the isolines-->
        <d3:IsolineGraph Name="isolineGraph"/>
        <!--to dynamically display the isocurve just under mouse cursor-->
        <d3:IsolineTrackingGraph Name="trackingGraph"/>
        <!--to show x and y coordinates-->
        <d3:CursorCoordinateGraph/>
    </d3:ChartPlotter>
</Grid>

2。用C#提供一些数据

public主窗口()
{
初始化组件();
常数int宽度=100;
const int height=100;
双精度[,]数据=新的双精度[宽度,高度];
对于(int row=0;row
我提供的代码计算一个函数,其值取决于x和y

我将计算出的(cosinus)值放入
数据
变量中

gridData
变量只保存{x,y}点

以下是完整的工作项目:

向弗朗西斯致意

我查看了动态数据显示库,并从示例中获得了实现这一点的灵感

1。用XAML描述图形

<Grid>
    <d3:ChartPlotter Name="plotter">
        <!--to display the isolines-->
        <d3:IsolineGraph Name="isolineGraph"/>
        <!--to dynamically display the isocurve just under mouse cursor-->
        <d3:IsolineTrackingGraph Name="trackingGraph"/>
        <!--to show x and y coordinates-->
        <d3:CursorCoordinateGraph/>
    </d3:ChartPlotter>
</Grid>

2。用C#提供一些数据

public主窗口()
{
初始化组件();
常数int宽度=100;
const int height=100;
双精度[,]数据=新的双精度[宽度,高度];
对于(int row=0;row
我提供的代码计算一个函数,其值取决于x和y

我将计算出的(cosinus)值放入
数据
变量中

gridData
变量只保存{x,y}点

以下是完整的工作项目:


我确实试过了,效果很好。 我只需修改您的示例,使其适用于矩形案例(宽度不等于高度),因为gridData赋值中存在反转:

gridData[column, row] = new Point(row, column)
改为

gridData[column, row] = new Point(column, row)
似乎就是这样。 遗憾的是,我不认为在D3等值线中有办法用颜色填充贴图,就像在热图或中一样(这是我在WinForms上使用的库,但在WPF中不起作用)。 所以我现在看的是Oxyplot。 非常感谢你的帮助


弗朗西斯。

我确实试过,效果很好。 我只需修改您的示例,使其适用于矩形案例(宽度不等于高度),因为gridData赋值中存在反转:

gridData[column, row] = new Point(row, column)
改为

gridData[column, row] = new Point(column, row)
似乎就是这样。 遗憾的是,我不认为在D3等值线中有办法用颜色填充贴图,就像在热图或中一样(这是我在WinForms上使用的库,但在WPF中不起作用)。 所以我现在看的是Oxyplot。 非常感谢你的帮助


弗朗西斯。

嗨,伊曼纽尔,我刚才也在看那个“扭曲的数据源2D”。。。非常感谢你的例子!我会试着实施。弗朗西斯,你有时间试一试吗。清楚吗?嗨,艾曼纽,我刚才也在看那个“扭曲的数据源2D”。。。非常感谢你的例子!我会试着实施。弗朗西斯,你有时间试一试吗。清楚吗?