1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156

Построение графика в Chart

13.03.2019, 18:11. Показов 8803. Ответов 18

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Работаю над программой, сделал встроенный редактор данных, можно ими пользоваться, есть проблема, нужно построить график (скрины ниже для того чтобы стало немного понятнее):
График показывает годовую выработку солнечной панели (100 вт для примера)
Данные: январь 0,19; фев. 0,29; март 0,37; апрель 0,49; май 0,57; июнь 0,58; июль 0,61; август 0,58, сентябрь 0,51, октябрь 0,38, ноябрь 0,21 декабрь 0,15
1) График меняется от города, это для одного города, а для другого например второго города, янв. 0,23; фев. 0,3; март 0,37; апр 0,4; май 0,53, июнь 0,52, июль 0,57, август 0,55, сент, 0,49 октябрь, 0,37, ноябрь 0,24, декабрь 0,17. Вот мне нужно понять как в Chart график рисовать
Потом в дальнейшем у меня есть база данных вот эти все значения это кВт, я по методу пропорции сделал формулу, для расчета каждой панели, т.е. если 100 Ваттная панель дает в январе 0,19 (к примеру), а у меня панель 320 Ватт, то нужно x=мощность моей панели*выроботку в первом месяце и разделить это все на 0,1 (панель в стандарте) и получаем мощность нашей выбранной панели за месяц. Вот нужно мне этому научиться, как строить этот график.
2) Последнее это как строить прямую в этом графике (пользователь укажет данные за лето и за зиму мне их нужно указать как один график, например зимой много, летом меньше это нужно показать тоже в этом графике)
Надеюсь кто то поймет, поможет, осталось чуть чуть сделать, я застрял, отчаяние уже.
Миниатюры
Построение графика в Chart   Построение графика в Chart   Построение графика в Chart  

0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2019, 18:11
Ответы с готовыми решениями:

Построение графика с использованием элемента Chart
Здравствуйте, уважаемые форумчане! Прошу Вашей помощи в решении следующей задачи. Мне необходимо построить график, содержащий значения...

Построение графиков функций в Chart
Дело было так. Построить две функции. одну в Chart1 другую в Chart2. Методичка у меня по C# а сделать задачу надо на Basic вот я ее и...

Построение графиков chart из данных в textbox
Добрый день, уважаемы программисты! Обращаюсь к вам за помощью в связи с необходимостью быстрого построения графиков различных функций из...

18
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
13.03.2019, 18:36  [ТС]
Если вдруг непонятно
Вначале один график (как на скрине в зависимости от города)
Потом после нажатия кнопки будет дальнейший расчет и там уже будет график с использованием пропорции, мне только понять как это реализовать в chart.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,514
Записей в блоге: 2
13.03.2019, 20:46
Polyana1997,
С пониманием вашего толкования задачи у меня сложности, но предлагаю реализацию своего понимания. Данные естественно случайные, а пересчет произвольный (от фонаря).
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form3
    Private EI() As EnergyInformation
    Private dt() As String
    Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        setData()
        Dim ci As New Globalization.CultureInfo("ru-RU")
        Dim dtfi As Globalization.DateTimeFormatInfo = ci.DateTimeFormat
        dt = dtfi.MonthNames
        ReDim Preserve dt(11)
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim tt = From t In EI Where t.town = ListBox1.SelectedItem
        Chart1.Series.Clear()
        Dim s As Series = New Series(tt(0).town & "100") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Line,
                                        .borderWidth = 2,
                                        .borderColor = Color.Red}
        s.Points.DataBindXY(dt, tt(0).Energy100)
        Chart1.Series.Add(s)
        s = New Series(tt(0).town & "320") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Line,
                                        .borderWidth = 2,
                                        .borderColor = Color.Green}
        s.Points.DataBindXY(dt, tt(0).Energy320)
        Chart1.Series.Add(s)
        With Chart1.ChartAreas(0)
            .AxisX.Minimum = 1
            .AxisX.Maximum = 12
            .AxisX.Interval = 1
            .AxisX.MinorTickMark.Interval = 1
            .AxisX.MinorTickMark.TickMarkStyle = TickMarkStyle.OutsideArea
            .AxisX.MinorTickMark.Enabled = True
            .AxisY.Interval = 0.1
        End With
    End Sub
    Private Sub setData()
        Dim r As New Random
        ReDim EI(ListBox1.Items.Count - 1)
        Dim k As Integer
        For Each tn As String In ListBox1.Items
            Dim ee As New EnergyInformation(tn)
            Dim mm100 As Double() = Enumerable.Range(0, 12).Select(Function(j) r.Next(10, 90) / 100).ToArray()
            ee.Energy100 = mm100
            Dim mm320(mm100.Length - 1) As Double
            For i = 0 To mm320.Length - 1
                mm320(i) = 320 * mm100(i) / 400 'пересчет выбран произвольно
            Next
            ee.Energy320 = mm320
            EI(k) = ee
            k += 1
        Next
    End Sub
End Class
Public Class EnergyInformation
    Public Sub New(ByVal tn As String)
        MyBase.new()
        _town = tn
    End Sub
    Public Property town As String
    Public Property Energy100 As Double()
    Public Property Energy320 As Double()
End Class
Миниатюры
Построение графика в Chart  
1
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
13.03.2019, 22:55  [ТС]
ovva, Вы мне не раз помогали, Вы золотой человек.
Но мне кажется у меня бошка взорвется, как у Вас от моего толкования!
Если проще, выше есть данные за год, это для одного города, есть второй город я указал ниже. Тут все понятно. Вот нужно сделать один график при смене городов(как на скрине моем) он будет меняться(график), а вот как его сделать я не понял. В этом и проблема.
А дальше мы переходим на следующую страницу и там расчет, Там опять график, человек выбирает нужную ему солнечную панель, он указывает количество их (ну это просто я из таблицы беру мощность и умножаю на количество), получу допустим число и задам ему переменную Full.
Для того чтобы график был точным, я сделал формулу по пропорции, чтобы не запутаться напишу что где, мы умножаем мощность нашей панели на количество выработанной мощности(например 0,50) в тот месяц (например январь, там 0,23) и делим на 0,1 (100 Ватт как пример панель была взята) и получаем X=(0,5*0,23)/0,1, это наша панель выроботала за первый месяц! За январь, и так с каждым месяцем только вместо 0,23 мы ставим значение за февраль 0,29.
Потом получим график полный! Я так сам сделаю с каждым городом, мне только понять как это все занести в chart. А пока, что я изучу Ваш труд!

Добавлено через 1 час 50 минут
ovva, Изучил Ваши старания, но, что - то у меня мозгов мало, тяжело понять.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,514
Записей в блоге: 2
13.03.2019, 23:36
Цитата Сообщение от Polyana1997 Посмотреть сообщение
тяжело понять.
Добавил к коду комментарии
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form3
    Private EI() As EnergyInformation 'массив объектов EnergyInformation по городам
    Private dt() As String
    Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        setData() 'моделируем данные (в вашем случае моделировать ничего не нужно, данные уже есть)
        Dim ci As New Globalization.CultureInfo("ru-RU")
        Dim dtfi As Globalization.DateTimeFormatInfo = ci.DateTimeFormat
        dt = dtfi.MonthNames
        ReDim Preserve dt(11) 'получили массив с имнами месяцев года
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim tt = From t In EI Where t.town = ListBox1.SelectedItem 'определяем объект EnergyInformation в соответствии с выбранным городом
        Chart1.Series.Clear()
        Dim s As Series = New Series(tt(0).town & "100") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Line,
                                        .borderWidth = 2,
                                        .borderColor = Color.Red}
        s.Points.DataBindXY(dt, tt(0).Energy100)
        Chart1.Series.Add(s) 'определяем серию для объекта tt (данные Energy100) и добавляем ее к графику 
        s = New Series(tt(0).town & "320") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Line,
                                        .borderWidth = 2,
                                        .borderColor = Color.Green}
        s.Points.DataBindXY(dt, tt(0).Energy320)
        Chart1.Series.Add(s) 'определяем серию для объекта tt (данные Energy320) и добавляем ее к графику 
        With Chart1.ChartAreas(0)
            .AxisX.Minimum = 1
            .AxisX.Maximum = 12
            .AxisX.Interval = 1
            .AxisX.MinorTickMark.Interval = 1
            .AxisX.MinorTickMark.TickMarkStyle = TickMarkStyle.OutsideArea
            .AxisX.MinorTickMark.Enabled = True
            .AxisY.Interval = 0.1
        End With 'настройка внешнего вида
    End Sub
    Private Sub setData()
        Dim r As New Random
        ReDim EI(ListBox1.Items.Count - 1)
        Dim k As Integer
        For Each tn As String In ListBox1.Items 'цикл по городам
            Dim ee As New EnergyInformation(tn)
            'моделируем данные Energy100
            Dim mm100 As Double() = Enumerable.Range(0, 12).Select(Function(j) r.Next(10, 90) / 100).ToArray()
            ee.Energy100 = mm100
            Dim mm320(mm100.Length - 1) As Double
            'выполняем пересчет для Energy320
            For i = 0 To mm320.Length - 1
                mm320(i) = 320 * mm100(i) / 400 'пересчет выбран произвольно
            Next
            ee.Energy320 = mm320
            EI(k) = ee
            k += 1
        Next
    End Sub
End Class
Public Class EnergyInformation
    Public Sub New(ByVal tn As String)
        MyBase.new()
        _town = tn
    End Sub
    Public Property town As String 'имя города
    Public Property Energy100 As Double() 'значения выработки солнечной панели (100 вт)
    Public Property Energy320 As Double() 'значения выработки солнечной панели (320 вт), получено пересчетом от Energy100
End Class
1
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 01:50  [ТС]
ovva, Я скопировал, поправил, получилось, но...
Вашу работу я изучил правда, бошка правда лопается, но ничего. Но как мне это переделать под вот это?
У меня 12 городов, всего будет 3 разных графика всего будет, я время потратил, нашел, посчитал, всего три: Январь - 0,19; Февраль - 0,29; Март - 0,37; Апрель - 0,49; Май - 0,57; Июнь - 0,58; Июль - 0,61; Август 0,58; Сентябрь - 0,51; Октябрь - 0,38; Ноябрь - 0,21; Декабрь - 0,15.
второй: Январь - 0,23; Февраль - 0,3; Март - 0,37; Апрель - 0,4; Май - 0,53; Июнь - 0,52; Июль - 0,57; Август - 0,55; Сентябрь - 0,49; Октябрь - 0,37; Ноябрь - 0,24; Декабрь - 0,17;
третий: Январь - 0,21; Февраль - 0,3; Март - 0,35; Апрель - 0,45; Май - 0,52; Июнь - 0,5; Июль - 0,54; Август - 0,52; Сентябрь - 0,46; Октябрь - 0,35; Ноябрь - 0,21; Декабрь - 0,16.
Это основной график, он меняется в зависимости от выбора города. Это все понятно, у меня получилось, но данные эти, как прикрепить не знаю.
Дальше если нажать продолжить, там будет опять график и панели, выбор их, количество их

Панель 100 ватт - дает свою мощность в зависимости от города разную мощность в зависимости от месяца. Поэтому используем пропорцию для поиска её. x=мощность выбранной панели*мощность в одном месяце/0,1 (нашу панель принятую в стандарте).
Я понял, что Вы объяснили, это рандомом строит график, интересная штука, но я не пойму как мне применить мои данные там. Я попробовал пару способов, вот уже почти 2 часа ночи, но никак вот это всё.
Я Вам в ЛС скинул видео 30 секундное, но видимо зря, я вспомнил, что Вы не отвечаете в ЛС, заранее извиняюсь.

Добавлено через 1 минуту
Я даже сделал таблицу Access одна кВт эти а другая месяцы, таких три таблицы. А вот как их в Chart прицепить это тоже стало непонятно, перерыл инет тоже не нашел. Уже от нервов сердце заболело. Вот как то так.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,514
Записей в блоге: 2
14.03.2019, 14:46
Polyana1997,
Давайте поделим задачу на части:
I.
Есть некоторые данные по месяцам (янв., …, дек.) для нескольких городов. Например, для трех городов
Москва
0.19;0.29;0.37;0.49;0.57;0.58;0.61;0.58; 0.51;0.38;0.21;0.15
Иркутск
0.23;0.30;0.37;0.40;0.53;0.52;0.57;0.55; 0.49;0.37;0.24;0.17
Якутск
0.21;0.30;0.35;0.45;0.52;0.50;0.54;0.52; 0.46;0.35;0.21;0.16
Для этих данных не вижу большого смысла заводить базу данных, думаю будет достаточно и текстового файла.
В этой части нужно:
• прочитать текстовый файл с данными
• заполнить список именами городов
• после выбора города в списке нарисовать график (по его данным)
II.
После выбора некоторых технологических параметров преобразуем ряд данных для указанного города, например
F(0.19,t1,t2,…); F(0.29,t1,t2,…); F(0.37,t1,t2,…); F(0.49,t1,t2,…); F(0.57,t1,t2,…); F(0.58,t1,t2,…); F(0.61,t1,t2,…); F(0.58,t1,t2,…); F(0.51,t1,t2,…); F(0.38,t1,t2,…); F(0.21,t1,t2,…); F(0.15,t1,t2,…)
Этот ряд выводим на график. Этот график можно совместить с графиком для непреобразованного ряда (или не совмещать).
Реализация задачи:
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form4
    Private EI() As EngInfo
    Private dt() As String
    Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        getMonthArray()
        readData()
        RadioButton1.Checked = True
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim tt = From t In EI Where t.town = ListBox1.SelectedItem 'определяем объект в соответствии с выбранным городом
        Dim fd() As Double
        Dim t1 As Double = 320, t2 As Double = 400
        Chart1.Series.Clear()
        Dim s1 As New Series(tt(0).town & "_Base") With {
                                .IsVisibleInLegend = True,
                                .IsXValueIndexed = False,
                                .ChartType = SeriesChartType.Spline,
                                .borderWidth = 2,
                                .borderColor = Color.Red}
        Dim s2 As New Series(tt(0).town & "_F(Base)") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Spline,
                                        .borderWidth = 2,
                                        .borderColor = Color.Green}
        Select Case True
            Case RadioButton1.Checked 'базовые данные из текстового файла
                s1.Points.DataBindXY(dt, tt(0).Energy100)
                Chart1.Series.Add(s1)
            Case RadioButton2.Checked 'преобразованные данные в соответствии с дополнительными параметрами (t1,t2,...)
                fd = transformation(tt(0).Energy100, t1, t2)
                s2.Points.DataBindXY(dt, fd)
                Chart1.Series.Add(s2)
            Case RadioButton3.Checked 'оба графика
                s1.Points.DataBindXY(dt, tt(0).Energy100)
                fd = transformation(tt(0).Energy100, t1, t2)
                s2.Points.DataBindXY(dt, fd)
                Chart1.Series.Add(s1)
                Chart1.Series.Add(s2)
        End Select
        With Chart1.ChartAreas(0)
            .AxisX.Minimum = 1
            .AxisX.Maximum = 12
            .AxisX.Interval = 1
            .AxisX.MinorTickMark.Interval = 1
            .AxisX.MinorTickMark.TickMarkStyle = TickMarkStyle.OutsideArea
            .AxisX.MinorTickMark.Enabled = True
            .AxisY.Interval = 0.1
            .AxisY.Maximum = 0.9
        End With
    End Sub
    Private Sub getMonthArray()
        Dim ci As New Globalization.CultureInfo("ru-RU")
        Dim dtfi As Globalization.DateTimeFormatInfo = ci.DateTimeFormat
        dt = dtfi.MonthNames
        ReDim Preserve dt(11) 'получили массив с именами месяцев года
    End Sub
    Private Sub readData()
        Dim ln() As String = IO.File.ReadAllLines("InfoForTowns.txt", System.Text.Encoding.Default) 'файл в папке с программщй
        ReDim EI(ln.Length / 2 - 1)
        Dim en As EngInfo
        For i = 0 To ln.Length - 2 Step 2
            ListBox1.Items.Add(ln(i))
            en = New EngInfo(ln(i))
            en.Energy100 = ln(i + 1).Split({";"c}).Select(Function(x) CDbl(x)).ToArray
            EI(i / 2) = en
        Next
    End Sub
    Private Function transformation(ByVal ar() As Double, ByVal t1 As Double, ByVal t2 As Double) As Double()
        Dim rr(ar.Length - 1) As Double
        For i = 0 To ar.Length - 1
            rr(i) = t1 * ar(i) / t2
        Next
        Return rr
    End Function
End Class
Public Structure EngInfo
    Public Sub New(ByVal tn As String)
        _town = tn
    End Sub
    Public Property town As String 'имя города
    Public Property Energy100 As Double() 'значения выработки солнечной панели (100 вт)
End Structure
Миниатюры
Построение графика в Chart  
Вложения
Тип файла: txt InfoForTowns.txt (208 байт, 37 просмотров)
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 20:26  [ТС]
ovva, Ошибка вот такая, подскажите как убрать?
Я сначала думал попробую с ComboBox1, переименовал все ListBox1 на COmbobox1 ошибка, на ListBox1 поменял тоже, думал может в этом ошибка. Он не видит города или как?
Миниатюры
Построение графика в Chart   Построение графика в Chart   Построение графика в Chart  

0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 21:01  [ТС]
RadioButton я не добавлял, потом добавил но ошибка та же осталась (и код radiobutton тоже вернул)
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,514
Записей в блоге: 2
14.03.2019, 21:37
1. Есть ли на форме ListBox1?
2. Файл InfoForTowns.txt находится в папке с программой (*.exe) и соответствует предложенной мной структуре?
3. Проверьте содержимое массива ln
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 21:54  [ТС]
ovva,
Есть
Файл находиться там где нужно
Проверил, показывает Москва
показывает что ListBox1.Items выдал ошибку System.NullReferenceException, странная ерунда

Добавлено через 1 минуту
System.NullReferenceException
HResult=0x80004003
Сообщение = Ссылка на объект не указывает на экземпляр объекта.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,514
Записей в блоге: 2
14.03.2019, 22:14
Выложите ваш проект.
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 22:27  [ТС]
ovva,
Вложения
Тип файла: rar ProgrammSolar.rar (524.7 Кб, 24 просмотров)
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,514
Записей в блоге: 2
14.03.2019, 23:18
Лучший ответ Сообщение было отмечено Polyana1997 как решение

Решение

Polyana1997, подправил то, что касается вывода графика (VS2017).
Вложения
Тип файла: rar ProgrammSolar.rar (1.18 Мб, 105 просмотров)
1
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
15.03.2019, 01:48  [ТС]
ovva, Все работает, запятую в блокноте вместо точки поставил и заработало!
Первая цель есть! Второе попробую сам, это вот эту пропорцию туда запихнуть, и нарисовать график в зависимости от города и выбранной панели.
А скажите, что Вы именно сделали, что заработало? Я думал что - то в коде исправили, смотрю, копирую себе, все тоже самое, ошибка тоже самая (в моем проекте который я кидал выше, ваш работает).

Добавлено через 1 час 33 минуты
ovva, Спасибо огромное!
Эта цель выполнена Вами и так как нужно!
Осталось решить последнюю задачу
VB.NET
1
2
3
4
5
6
 For i = 0 To ln.Length - 2 Step 2
            ListBox1.Items.Add(ln(i))
            en = New EngInfo(ln(i))
            en.Energy100 = ln(i + 1).Split({";"c}).Select(Function(x) CDbl(x)).ToArray
            EI(i / 2) = en
        Next
Этот цикл отвечает за перебор данных верно, из блокнота и подстановка в Chart?
Теперь я вытянул из таблицы число (мощность). Принял её как Power = Integer. И вот она дает 200 Ватт, 0,2 кВт она не выдаст никогда. Мне нужно теперь посчитать её мощность пропорцией.
Пример
Москва
0.19;0.29;0.37;0.49;0.57;0.58;0.61;0.58; 0.51;0.38;0.21;0.15
Панель наша 200 Ватт
Значит в первый месяц она выдаст
x=(0,2*0,19)/0,1; Второй месяц x=(0,2*0,29)/0,1;Третий месяц x=(0,2*0,37)/0,1 и так весь цикл по всем числам наша Power прыгает.
Вот я пытаюсь понять где график наш рисуется, как мне к этим числам прикоснуться, чтобы взаимодействовать с ними.
Power это из DataGridView, я её кликабельно присваиваю, потом график будет сам строиться от этих кликов.
Самое сложное это вот и все, тема закрыта будет.
Я не прошу Вас сильно утруждаться, Вы много сделали но хотя бы направьте.
Ещё раз спасибо за первую решенную часть!
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,514
Записей в блоге: 2
15.03.2019, 12:46
Цитата Сообщение от Polyana1997 Посмотреть сообщение
А скажите, что Вы именно сделали, что заработало?
Вы слишком вольно обращаетесь с кодом. Например, те строки, что у меня размещались в обработке события ListBox1_SelectedIndexChanged, у вас оказались в процедуре Form_Load.
Цитата Сообщение от Polyana1997 Посмотреть сообщение
Этот цикл отвечает за перебор данных верно, из блокнота и подстановка в Chart?
Данный цикл
• считывает информацию из текстового файла
• добавляет имена городов в список ListBox1
• добавляет новые объекты типа EngInfo в массив EI
Цитата Сообщение от Polyana1997 Посмотреть сообщение
Вот я пытаюсь понять где график наш рисуется, как мне к этим числам прикоснуться, чтобы взаимодействовать с ними.
В данном случае график формируется в обработке события ListBox1_SelectedIndexChanged по данным из массива EI. Хотя все это можно вынести, например, под нажатие кнопки или какое-то другое событие.
График по преобразованным данным строится аналогично, только массив данных нужно предварительно преобразовать. Все это есть в моем последнем примере.
1
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
15.03.2019, 14:52  [ТС]
ovva, Это моя невнимательность! Буду внимательнее!
Я ещё раз изучил предыдущую работу, там же Вы применяете t1 = 320, t2 = 400, это числа от фонаря
VB.NET
1
2
3
   fd = transformation(tt(0).Energy100, t1, t2)
                s2.Points.DataBindXY(dt, fd)
                Chart1.Series.Add(s2)
Здесь происходит перебор каждой точки из блокнота с умножением на t1, t2.
Как я понял, Enegry100 это вот эти числа, с блокнота, верно?
Я уже придумал как вытягивать из таблицы данные, ещё более удобнее, все сделал.
Сделаю через кнопку, при нажатии идет считывание мощности панели, на количество и сразу преобразование в кВт, чтобы размерность была одна и та же.
Я понял про образец, я пытаюсь разобраться но что то голова лопается, мне же не нужен новый график, s2, мне нужен тот же график s1 просто при нажатии кнопки меняется информация полностью. Те 100 Вт, улетают, появляется выбранная, со своей мощностью, и с тем преобразовании.

Добавлено через 56 минут
ovva, У меня получилось! Только когда нажимаю кнопку, сделаю очистку, и график не виден, т.е. все вверх поднимается и ничего не видно, нужно размеры автоматические сделать, как то
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
15.03.2019, 14:56  [ТС]
ovva,
Миниатюры
Построение графика в Chart   Построение графика в Chart  
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
15.03.2019, 16:41  [ТС]
ovva, И ещё сразу спрошу
Автоматизировать график, это понятно (Не совсем)
Там слева вверху 2 TextBox, один за зимний период
Второй за летний, пользователь указывает туда числа Например в первое 45, в летнее 78, (к примеру) это как то тоже нужно показать. У нас есть база данных за год (т.е. название месяцев) как приучить, что зима это вот эти 3 месяца, а летние тоже 3, остальные 6 куда пойдут? Но я видимо плюну и сделаю одну прямую синим цветом (Зима), одну прямую оранжевого цвета Лето и все, не буду Вас мучить и себя, просто подскажите как её нарисовать.

Добавлено через 1 час 28 минут
Задача с размерами графика решилась! Осталось 2 Textbox и все
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2019, 16:41
Помогаю со студенческими работами здесь

Перенос нарисованного графика в chart
Доброго времени суток, есть программа, рисуешь на осях, получаешь его в Chart, потом идут вычисления, проблема в переносе нарисованного...

Элемент Chart - перерисовка графика
Всем, доброго дня! Вопрос в следующем, рассчитываю функцию и строю кривую при помощи Chart, но каждый раз при пересчете старая кривая...

Вывод графика в Chart по данным из таблицы БД
Здравствуйте!!! Столкнулся с проблемой вывода графика по таблице(VB 2012). Выдает ошибку: Приведение строки к типу integer является...

Построение графика в chart
Нужно построить график функции ln((x+1)/(x+2)). Когда строю график то строится только 1 часть (от минус бесконечности до 2), и не строится...

Построение графика в chart
надо построить график в Chart. как записать функцию a^x+b? a,b вводятся в едите. Пробовал написать так: Exp(x*ln(a))+b, но тут А не может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

Новые блоги и статьи
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru