我在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
真的很感谢你的帮助!!
感谢。
答案 0 :(得分:0)
我不确定您的CSV文件是如何映射到DemoInfo类的。此外,以下示例基于CSV文件,但您的示例数据显示TSV文件。如果它是TSV文件,只需用'/ t'替换','。另外,需要注意的是,如果任何字符串包含您的分隔符,例如像“Univeristy,Madison”这样的SWW机构字符串。
您可以打开文件以读取文本行,并根据分隔符拆分行。
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]...
}
}