【发布时间】:2018-12-19 11:38:50
【问题描述】:
所以我在图表中显示了多条曲线。但是,当我生成随机颜色时,所有其他曲线也会得到这种颜色。
int fileIndex=0;
Random r = new Random();
foreach (var i in graphContainer)
{
fileIndex++;
var series = new Series
{
Name = legendNames[fileIndex],
Color = Color.FromArgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256)),
IsVisibleInLegend = true,
IsXValueIndexed = false,
ChartType = SeriesChartType.Line
};
foreach (var j in i)
{
series.Points.AddXY (j.Item2, j.Item1);
}
chart.Invalidate ();
chart.Series.Add (series);
}
为什么我的曲线颜色相同?
整个函数:
private void generateWaveformsFromFileBtn_Click(object sender, EventArgs e)
{
int fileIndex = -1;
string folder = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\WaveForms\";
string filter = "*.csv";
string[] filePath = Directory.GetFiles(folder, filter);
List<string> legendNames = new List<string>();
List<Tuple<double, double>> graph = new List<Tuple<double, double>>();
List<List<Tuple<double, double>>> graphContainer = new List<List<Tuple<double, double>>>();
chart.Series.Clear();
foreach(var fileName in filePath) {
legendNames.Add(Path.GetFileName(fileName));
using (TextFieldParser csvParser = new TextFieldParser(fileName))
{
csvParser.SetDelimiters (new string[] { ";" });
csvParser.ReadLine ();
while (!csvParser.EndOfData)
{
string[] fields = csvParser.ReadFields();
double current = Double.Parse(fields[0]);
double inductance = Double.Parse(fields[1]);
graph.Add (new Tuple<double,double>(current, inductance));
}
graphContainer.Add(graph);
}
}
Random r = new Random();
foreach (var i in graphContainer)
{
fileIndex++;
var series = new Series
{
Name = legendNames[fileIndex],
Color = Color.FromArgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256)),
IsVisibleInLegend = true,
IsXValueIndexed = false,
ChartType = SeriesChartType.Line
};
foreach (var j in i)
{
series.Points.AddXY (j.Item2, j.Item1);
}
chart.Invalidate ();
chart.Series.Add (series);
}
}
建议:(?)
【问题讨论】:
-
只有1个“i”,它有所有的点吗?您是否使用相同的数据来确定您的图例?
-
graphcontainer 似乎是元组列表的列表 和
IsVisibleInLegend在系列构造函数中的 true 表明这是我们在右上角实际看到的四种不同图例颜色的来源角落。奇怪的。加入系列后,你会对传说做些什么吗? -
@dlatikay 正确,graphContainer 的类型为
List<List<Tuple<double,double>>>。不,在这点到图表之后,我没有做任何其他事情。这就是显示曲线的内容。 -
@Mike_G 不,
i是List<Tuple<double,double>>,在 graphContainer 中,我存储了包含图形信息的所有不同文档。 -
@dlatikay 为了清楚起见,我包含了整个函数。