读取文件并映射值
本文关键字:映射 文件 读取 | 更新日期: 2023-09-27 18:16:34
我找到了一个用c#实现的并行坐标应用程序。我想要实现的是,我希望能够读取CSV文件并将值和标签映射到坐标上。映射值的方法是手动分配值。相反,我希望从CSV文件中读取这些值。
下面是当前的方法:
public void DataBind()
{
IList<DemoInfo> infos = new List<DemoInfo>();
for (int i = 0; i < ObjectsCount; i++)
{
var x = new DemoInfo();
x.X = m_Random.NextDouble() * 400 - 100;
x.Y = m_Random.NextDouble() * 500 - 100;
x.Z = m_Random.NextDouble() * 600 - 300;
x.V = m_Random.NextDouble() * 800 - 100;
x.K = 1.0;
//x.M = i % 2 == 0 ? 1.0 : -20.0;
x.M = i;
x.Tag = i + 1;
infos.Add(x);
}
var dataSource = new MultiDimensionalDataSource<DemoInfo>(infos, 6);
dataSource.MapDimension(0, info => info.X);
dataSource.MapDimension(1, info => info.Y);
dataSource.MapDimension(2, info => info.Z);
dataSource.MapDimension(3, info => info.V);
dataSource.MapDimension(4, info => info.K);
dataSource.MapDimension(5, info => info.M);
//dataSource.MapDimensionToOpacity(0, 0.5);
dataSource.MapTag(info => info.Tag);
dataSource.Labels[0] = "X";
dataSource.Labels[1] = "Y";
dataSource.Labels[2] = "Z";
dataSource.Labels[3] = "V";
dataSource.Labels[4] = "K";
dataSource.Labels[5] = "M";
dataSource.HelperAxisLabel = "Helper axis";
DataSource = dataSource;
}
以下是CSV文件中的一些数据:
SWW Institutions Undergradutes Postgraduates
University College 2085 250
Metropolitan University 4715 1135
非常感谢您的帮助!
谢谢。
我不确定您的CSV文件如何映射到DemoInfo类。同样,下面的示例基于CSV文件,但是您的示例数据显示的是TSV文件。如果是TSV文件,只需将','替换为'/t'。另外,需要注意的是是否有字符串包含分隔符,例如SWW Institutions字符串,如" university, Madison"。
您可以打开文件来读取文本行,并根据您的分隔符分隔行。
using (var sr = File.OpenText(path))
{
var line = string.Empty;
while ((line = sr.ReadLine()) != null)
{
var dataPoints = line.Split(',');
// Create Your Data Mappings Here
// dataPoints[0]...
}
}