Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построение графика, Из данных файла построить график 
:(
    Опции темы
HelgaZaharova
Дата 7.2.2009, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 22.4.2008

Репутация: нет
Всего: нет



ВОт такая задачка... Необходимо открыть файл с данными, и на основании этих данных построить график. С файлом-то проблем не возникает, но вот как график построить не знаю. smile 
PM MAIL   Вверх
NightmareZ
Дата 7.2.2009, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 10.8.2006

Репутация: 1
Всего: 13



Что конкретно непонятно в рисовании графиков?


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
source777
Дата 7.2.2009, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



Helga, для начала поставь компонент для построения графиков от MS  smile 


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
RLZ
Дата 19.2.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 28.5.2007

Репутация: нет
Всего: нет



А для второго фреймворка есть что-либо подобное?
PM MAIL   Вверх
source777
Дата 19.2.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



Цитата(RLZ @  19.2.2009,  20:26 Найти цитируемый пост)
А для второго фреймворка есть что-либо подобное? 
ZedGraph, TeeChart demo.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
RLZ
Дата 25.2.2009, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 28.5.2007

Репутация: нет
Всего: нет



Юзаю ZedGraph! Рисует только один раз, при следующем вызове рисует поверх старого графика, не очищая область. Как сделать так, чтобы каждый раз перед рисованием область графика очищалась, если нет ни Clear, ни Reset? Кто юзает, подскажите! Заранее благодарен!

Это сообщение отредактировал(а) RLZ - 25.2.2009, 20:22
PM MAIL   Вверх
source777
Дата 25.2.2009, 21:14 (ссылка) |  (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



Цитата(RLZ @  25.2.2009,  20:22 Найти цитируемый пост)
Как сделать так, чтобы каждый раз перед рисованием область графика очищалась, если нет ни Clear, ни Reset? 
Это что по принципу "словарный запас кончился - не знаю что теперь делать"? документация для кого существует, а?

P.S. Всё зависит от того, как именно ты хочешь очистить область графика... удалить все панели рисования(MasterPane.PaneList.Clear), удалить все кривые с конкретной панели рисования(myPane.CurveList.Clear) или удалить все точки одной из кривых на конкретной панели рисования(myPane.CurveList[0].Clear)... все эти случаи описаны в документации!


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
HelgaZaharova
Дата 6.4.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 22.4.2008

Репутация: нет
Всего: нет



Компоненты-то были... Но мне нужно построить с помощью FusionCart.Вообщем, работа такая - у меня есть БД в MS SQL Server, в ней данные... на основании данных нужно построить графк и вывести на экран. smile  smile 
PM MAIL   Вверх
source777
Дата 6.4.2009, 23:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 3
Всего: 56



В таком случае, just do it!


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
HelgaZaharova
Дата 7.4.2009, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 22.4.2008

Репутация: нет
Всего: нет



А как по данным из Grid построить график. Изначально именно это и интересовало ))
PM MAIL   Вверх
HelgaZaharova
Дата 9.4.2009, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 22.4.2008

Репутация: нет
Всего: нет



Цитата

Что конкретно непонятно в рисовании графиков? 


У меня есть файл Data Html (вычитала, что графики строятся на основании таких вот файлов) - в нем содержится инфо, по которой нужно построить, но как-то не могу получить нужный график(((
PM MAIL   Вверх
HelgaZaharova
Дата 11.4.2009, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 22.4.2008

Репутация: нет
Всего: нет



Вообщем, если кому-то будет нжно, то ответ на поставленную задачу можно найти Тут smile 
PM MAIL   Вверх
HelgaZaharova
Дата 1.6.2009, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 22.4.2008

Репутация: нет
Всего: нет



Есть еще один способ для построения графика.
Создаем объектную модель для элементов будущего графика:
Код

namespace MSChart.Utility
{ 
public class Graph
    {
        public IList<Category> categories = new List<Category>();
        public IList<DataSet> dataSets = new List<DataSet>();

        public String Name
        {
            get;
            set;
        }
        public IList<Category> Categories
        {
            get { return categories; }
            protected set { categories = value; }
        }
        public IList<DataSet> DataSets
        {
            get { return dataSets; }
            protected set { dataSets = value; }
        }
        public Graph()
        {
            //
            // TODO: Add constructor logic here
            //
        }
    }

    public class Category
    {
        public String Name
        {
            get;
            set;
        }
        public Category()
        {
            //
            // TODO: Add constructor logic here
            //
        }
    }

    public class DataSet
    {
        private IList<String> values = new List<String>();
        public DataSet(String name, String color)
        {
            Name = name;
            Color = color;
        }
        public DataSet()
        {
        }
        public String Name
        {
            get;
            set;
        }
        public String Color
        {
            get;
            set;
        }
        public IList<String> Values
        {
            get { return values; }
            protected set { values = value; }
        }
    }


Graph – представляет собой диаграмму в объектной модели;
Category – представляет собой категорию в объектной модели;
DataSet – представляет собой коллекцию данных для конкретной серии. 
Далее прописываем метод для построения файла в Xml-формате:
Код

public class MSChart
    {
        private Graph _graph;
        private string doc1;
        public MSChart(Graph graph)
        {
            _graph = graph;
           
        }
        public string BuildDataSource()
        {
            XDocument doc = new XDocument(
                new XElement("graph",
                    new XAttribute("caption", _graph.Name),
                    new XAttribute("fromnum", "0"),
                    new XAttribute("decimalPrecision", "0"),
                    new XElement("categories",
                        from x in _graph.categories
                        select 
                            new XElement("category",
                                new XAttribute("name", x.Name))),
                        from x in _graph.dataSets
                        select
                            new XElement("dataSet",
                                new XAttribute("seriesName", x.Name),
                                new XAttribute("color", x.Color),
                                from y in x.Values
                                    select
                                    new XElement("set",
                                        new XAttribute("value", y)))
            )
            );
            return doc.ToString().Replace("\"", "'");            
        }

В основном тексте программы прописываем код для заполнения xml-источника:
Код

 List<String> values = new List<String>();
        List<String> legend = new List<String>();
        Graph graph = new Graph();
        graph.Name = "Зависимость глубины проплавления от силы тока";
        Int32 startValue = 1;



        MSChart.Utility.DataSet dataSet1 = new MSChart.Utility.DataSet("h1", "10a625");
        graph.DataSets.Add(dataSet1);

        MSChart.Utility.DataSet dataSet2 = new MSChart.Utility.DataSet("h2", "fea203");
        graph.DataSets.Add(dataSet2);

        MSChart.Utility.DataSet dataSet3 = new MSChart.Utility.DataSet("h3", "fbfe03");
        graph.DataSets.Add(dataSet3);




        foreach (DataRow row in table.Rows)
        {
            values.Add(startValue.ToString());
            Category category = new Category();
            category.Name = row[0].ToString();
            graph.Categories.Add(category);

            legend.Add(String.Format("&nbsp;&nbsp;<b>{0}</b>&nbsp;-&nbsp;{1}", startValue, row[0]));

            dataSet1.Values.Add(DataRowExtensions.Field<Int32>(row, "h1").ToString());
            dataSet2.Values.Add(DataRowExtensions.Field<Int32>(row, "h2").ToString());
            dataSet3.Values.Add(DataRowExtensions.Field<Int32>(row, "h3").ToString());
        }

        rptLegend.DataSource = legend;
        rptLegend.DataBind();

        MSChart.Utility.MSChart chart = new MSChart.Utility.MSChart(graph);

        divLineChart.InnerHtml = FusionCharts.RenderChartHTML(ResolveClientUrl("~/FusionCharts/FCF_MSLine.swf"), "", chart.BuildDataSource(), "id", "600", "300", false);        


Данный источник берет данные из таблиц БД, созданной на сервере.
Правда в данном коде есть недочеты, которые я пока не исправила:
1. xml-источник не сохраняется (т.е. метод CreateChart не видит его, а значит не видит данных для построения графика)
2.  описание ошибки в отдельной теме
3. График выбирает строки из таблицы, если данные прописаны в столбцах, код работает неверно (график будет строиться не по тем данным)
Если кто-то будет разбираться и найдет, как исправить эти ошибки - буду рада ответам  smile 
 Так же тут можно посмотреть коллекцию готовых xml-источников для построения chart-объектов различного типа и сложности.

Это сообщение отредактировал(а) HelgaZaharova - 1.6.2009, 14:31
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.