Страницы: 1
RSS
Оцифровка графика ( получение данных с графика )
 
Уважаемые знатоки,

Возник вопрос по получению данных, с графика ниже.
в чем суть;
Есть значения по X, от 0 до 160, нужно, чтобы в экселе(рисунок справа), в зависимости от моего числа X(RBS RMR), мне выдавал результат Y. Т.е для значения 20 , рейтинг будет = 10, и так далее.  
Изменено: teomatau - 19.09.2019 08:19:51
 
teomatau, на форуме по Excel и файлы нужно прикреплять соответствующие, а не рисунки.
 
Юрий М,пардон, обновил
 
Нужен Ваш файл с живым графиком, чтобы определить переменные функции. Без этого, на основании только одного числа X, получить Y не получится.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,отсюда вытекает второй вопрос, как можно достовернее отрисовать ( оцифровать график).

Пытался сделать уравнение с помощью логарифма, но что-то нет.
 
Цитата
teomatau написал:
как можно достовернее отрисовать
получить все необходимые данные. Вы хотите достоверно отрисовать график только на основании X, без Y? и как этот Y получить тоже не знаете? Нужна хотя бы исходная формула вычисления Y на основании X. Без этого ничего не выйдет, я думаю. Возможно туплю и ошибаюсь. Я просто откровенно не понимаю что мы вообще вычисляем.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,я скорее всего неправильно все объяснил.

Есть значения в MPa, в зависимости от этих значений, смотря на кривую, мне необходимо выбрать рейтинг, для каждого значения.
Например: Для значения 10 МПа, рейтинг будет составлять 5. для значения 20 МПа, рейтинг соотстветственно 10, и так далее.
Мне нужна формула, чтобы при подставке значений МПа в столбик, мне рядом выдавало значение Рейтинга
 
Доброе время суток.
Данные оцифровки - далее обычная линейная интерполяция между двумя точками по X.
00
4,637681159420292,20037453183521
8,944099378881994,30711610486891
14,24430641821956,60112359550562
19,37888198757768,61423220973783
23,850931677018610,3932584269663
29,979296066252612,3595505617978
35,610766045548713,9044943820225
40,248447204968914,934456928839
46,873706004140816,1048689138577
53,830227743271217,0880149812734
64,761904761904818,4456928838951
73,706004140786719,2883895131086
87,784679089026920,4588014981273
111,63561076604622,1910112359551
130,84886128364423,314606741573
147,08074534161524,3445692883895
16025
 
Всем спасибо, с темой разобрался. Кому интересно , во вложении  
 
Цитата
teomatau написал:
с темой разобрался
В разобранном при Х = 20, У = 9, а утверждалось
Цитата
teomatau написал:
Т.е для значения 20 , рейтинг будет = 10
У меня получилось для 20, У = 8,9 (если округлять до десятых).
Плюс/минус лапоть допустим?
 
Андрей VG,вы абсолютно правы, приглядевшись к графику, я заметил, что 20  - это действительно 8.9-9.
 
Андрей VG, приветствую! А как вы это делали? Ни разу с подобным не сталкивался, но очень интересно  :)

Особенно интересно, почему у обоих чисел хвосты:
    • как вы добились такой точности
    • почему не взяли целые числа X и рассчитали их соответсвия на Y или наоборот

Я бы просто закинул картинку в автокад и повторил оси (орто) и кривую (полилиния+сплайн+ручками). Потом можно бы было получать для любой точки X точку Y и наоборот…

UPD: нашёл программу и понял, откуда "хвосты" (сюрприз - не оттуда) :D
У меня через прогу вышло вот так
ссылка на файл программы с обработанным графиком

Статья на Хабре
Родственная тема
Изменено: Jack Famous - 19.09.2019 11:29:27
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Привет, Алексей.
В принципе, всё просто. Оцифровал график полилинией. Макросом сбросил координаты. Зная координаты точек в двух системах координат, пересчитал из одной в другую обычными формулами в столбцах F, G. По поводу точности - не стоит обольщаться. Обычно считается точность вычисления (округление результата) нужно делать в пределах полуширины линии.
Изменено: Андрей VG - 19.09.2019 10:17:10
 
Андрей VG, о, а макрос-то я и не заметил)
не думал, что так можно — спасибо за науку!  :idea:
Макрос получения координат
P.S.: а функцию как получили?)))
Изменено: Jack Famous - 19.09.2019 10:26:49
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Вопрос снова актуальный) после 40, все таки дает неправильные значения. Например для значения 69 , дает значения 29.5  
 
Цитата
teomatau написал:
Например для значения 69 , дает значения 29.5
Ну, это смотря что использовать для входа. У меня для 69 У = 18,8. Вывод - точнее готовьте данные.
 
Андрей VG,не могли бы вы, пожалуйста, прикрепить свой файл?
 
Цитата
teomatau написал:
прикрепить свой файл
так выложил же выше. Но Jack Famous прав, лучше для оцифровки графиков использовать специальные программы. По крайней мере, задавая опорные точки, можно скорректировать искажения. А это нужно делать, если источник - скан.
 
Андрей VG,я просто не могу понять, куда входные данные вводить?)
 
Цитата
teomatau: не могу понять
правда - используйте программу. Для варианта от Андрея очень неплохо знать если не макросы, то хотя бы способы корректировки, т.к. например любое смещение полилинии означает, что нужен перевывод координат.

А вообще у него очень крутой метод использован - обязательно учту на будущее  :idea:
Изменено: Jack Famous - 19.09.2019 11:04:14
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,Спасибо,

Просто дело в том, что у меня будут входные данные, от 1 до 400, к которым нужно будет значение рейтинга. Я думал, что будет проще привязать к ним формулы, и при копирование данных, чтобы сразу присваивался рейтинг. Я так понимаю, в программе так не получится?
 
Цитата
teomatau написал:
куда входные данные вводить?
Для вашей таблички в файле Graph.xlsx
Код
=ИНДЕКС(yData;ПОИСКПОЗ(A2;xData;1))+(A2-ИНДЕКС(xData;ПОИСКПОЗ(A2;xData;1)))*(ИНДЕКС(yData;ПОИСКПОЗ(A2;xData;1)+1)-ИНДЕКС(yData;ПОИСКПОЗ(A2;xData;1)))/(ИНДЕКС(xData;ПОИСКПОЗ(A2;xData;1)+1)-ИНДЕКС(xData;ПОИСКПОЗ(A2;xData;1)))

где xData - именованный диапазон оцифрованых значений по Х, yData - именованный диапазон оцифрованных значений по Y.
 
Андрей VG, Большое спасибо,

с 10 раза понял )
Страницы: 1
Наверх