Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2010 12:40:15

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

А вы точно уверены в том, что там именно 40401 строка? Как вы это проверяете? Может вы смотрите не тот файл, что надо?



Офлайн

#2 Июнь 3, 2010 12:45:17

AleksSR
От:
Зарегистрирован: 2010-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Смотрю через notepad++, там строки пронумерованы. 40401 строка потому, что те данные генерирует программа(ее не я писал, там ехе, написанный на С++): функция N(x,y) где x и y пробегают значения от 0 до 1 с шагом 0.005 (201 значение, 201*201 = 40401).



Отредактировано (Июнь 3, 2010 12:46:00)

Офлайн

#3 Июнь 3, 2010 13:31:23

AleksSR
От:
Зарегистрирован: 2010-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Еще одно важное замечание, данные почему-то начинают считываться со 105 строки по 402 включительно, а не сначала и доконца файла .dat



Офлайн

#4 Июнь 3, 2010 14:28:47

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Есть у меня чувство, что какой-то кривой этот файл. Попробуйте открывать его другими редакторами и запускать ваш скрипт на другой машине(переложив туда этот файл конечно). А размер файла соответствует количеству информации в нем?



Офлайн

#5 Июнь 3, 2010 14:31:14

AleksSR
От:
Зарегистрирован: 2010-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Размер файла данных 1.14 мб.



Офлайн

#6 Июнь 3, 2010 14:37:29

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Посмотрите на переводы строк в файле, везде ли они одинаковы



Офлайн

#7 Июнь 3, 2010 14:57:26

AleksSR
От:
Зарегистрирован: 2010-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Не совсем понял, но вроде все переносы строк одинаковые. Если не сложно посмотрите плиз файл с данными.
Спасибо.



Офлайн

#8 Июнь 3, 2010 15:10:23

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Посмотрел ваш файлик. Все нормально. Более того. Набросал вот такой скрипт:

#!/usr/bin/env python
# -*- coding: cp1251 -*-

i = 0
for line in open('d:\\out.dat', 'r'):
coords = line.split()
ksi_x = float(coords[0])
ksi_y = float(coords[1])
N = float(coords[2])
print i, ksi_x
i+=1
и он нормально отработал. Вот начало и конец вывода в консоль idle:
>>>
0 0.0
1 0.005
2 0.01
3 0.015
4 0.02
5 0.025
6 0.03
7 0.035
8 0.04
9 0.045
10 0.05
11 0.055
12 0.06
13 0.065
14 0.07
15 0.075
16 0.08
17 0.085
18 0.09
19 0.095
20 0.1

….

40377 0.885
40378 0.89
40379 0.895
40380 0.9
40381 0.905
40382 0.91
40383 0.915
40384 0.92
40385 0.925
40386 0.93
40387 0.935
40388 0.94
40389 0.945
40390 0.95
40391 0.955
40392 0.96
40393 0.965
40394 0.97
40395 0.975
40396 0.98
40397 0.985
40398 0.99
40399 0.995
40400 1.0
>>>
Попробуйте повторить мой опыт.



Отредактировано (Июнь 3, 2010 15:11:16)

Офлайн

#9 Июнь 3, 2010 15:23:11

AleksSR
От:
Зарегистрирован: 2010-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Использовал ваш код и кажется понял, проблема у меня была в отображении в консоле, у меня отображал последние 300 чисел и мой и ваш код, сейчас попробую данные сохранить в другой файл и станет все понятно, прошу тему не закрывать ибо самые главные вопросы по графику еще впереди, там нужно будет сделать одну непростую махинацию)))



Офлайн

#10 Июнь 3, 2010 17:38:53

AleksSR
От:
Зарегистрирован: 2010-06-02
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Данные для 3-х мерного графика

Совсем что-то мозг кипит с этим графиком. Дело в том, что график задаваемый данными из файла нужно еще кое-как продлить…
Подскажите плиз, как реализовать такую вещь. Пусть x и y меняются в пределах от 1 до 3, нужно составить список данных, который пройдет все точки данной сетки(y постоянный, меняется x по всему диапазону, затем след. y и для него x из всего диапазона), т.е:
1 1
2 1
3 1
1 2
2 2
3 2
1 3
2 3
3 3

i = 0
k = 0
for y in range (0 , 2001):
for x in range (0 , 2001):
ks = str(i) + " " + str(k) + "\n"
k += 0.001
file.writelines(ks)
i += 0.001
такой код не работает.
Второй день с python работаю)))



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version