2014-04-01 5 views
0

Мне любопытно узнать, действительно ли DataVisualization.charting.chart в vb.net делает автоматический подсчет/построение графика для моей конкретной проблемы.Автоматическое увеличение с помощью элемента управления vb.net

У меня есть файл с тысячами строк User Agent, которые были сгенерированы в течение определенного периода времени. Строки UA генерируются из пользовательских логинов.

В моей программе я идентифицирую примерно 45 различных сред: Операционные системы + Тип браузера (например, «Windows 7 + IE10»). Каждый логин также имеет отметку даты в формате ГГГГ-ММ.

Моя задача - сделать линейную диаграмму, где у меня есть окружение (по оси Y) и Date (ось X) с помощью элемента управления графикой vb.net. Я бы хотел, чтобы элемент управления увеличивался каждый раз, когда у меня был конкретный набор данных, а не сохранялось отвратительное количество массивов & данных счетчика для моей диаграммы.

Автоматически увеличивает ли счетчик управления vb.net таким образом? Я пока ничего не могу найти.

ответ

0

Я не уверен, что я понимаю вопрос (что вы хотите автоматически увеличивать? Ось min/max? Дата? Что-то еще?), Но если вы хотите, чтобы оси обновлялись каждый раз, когда вы добавляете новый момент, график, безусловно, поддерживает это. Просто позвоните Chart.ResetAutoValues() после того, как вы добавите новую точку (точки), и она будет определять новые диапазоны для обеих осей.

Редактирование: упорядочивайте данные, прежде чем добавлять их в диаграмму. Что-то вроде:

Dictionary<string, int> values = new ...; 
string[] uaStrings = ReadFileOfUAStrings(); 
foreach (string uaString in uaStrings) 
{ 
    values[uaString]++; 
} 

foreach (KVP in values) 
{ 
    chart.Series(kvp.Key).Points.Add(kvp.Value); 
} 

Вышеупомянутые не разделяют вещи по дате, но вы должны получить эту идею. Как написано, также не очень эффективно, если в файл добавлена ​​другая строка UA, и все это перечитывается, но оптимизация может возникнуть после ее функциональности.

+0

Я рассмотрю метод ResetAutoValues. Как я уже говорил, мне нужно отобразить все мои данные по оси X/Y. X = дата; Y = Env. Вот пример из StatCounter: http://gs.statcounter.com/ – scttech

+0

Чтобы привести пример, приведенный ниже код будет отображать данные только по одной точке за раз. То, что я хотел бы сделать, это не поддерживать переменную счетчика, а скорее контролировать диаграмму. Поэтому каждый раз, когда код вызывается ниже, диаграмма автоматически увеличивается на единицу. Код является только примером и не работает для того, что я пытаюсь сделать. «Chart1.Series (« Win XP + IE10 »). Points.AddXY (« 2013-01 », 1)' – scttech

+0

Являются ли данные статическими? Или появляются новые строки UA? Я также не понимал, что вы создаете другую серию для каждой возможной среды ... Вместо того, чтобы пытаться отслеживать счетчики и т. Д. Для 45 различных сред, упорядочивайте свои данные, прежде чем добавлять их в диаграмму. См. Мой отредактированный ответ. – mmathis

Смежные вопросы