21

(16 відповідей, залишених у Python)

Доброго дня. Проблема з конвертацією .py -> .exe.
Ось код в set.up

from cx_Freeze import setup, Executable
import os
import sys

os.environ['TCL_LIBRARY'] = 'c:/python/tcl/tcl8.6'
os.environ['TK_LIBRARY'] = 'c:/python/tcl/tk8.6'

buildOptions = dict (
    packages = ['os'],
    excludes = ['tkinter','matplotlib.pyplot','numpy'],
    include_files = ['c:/python/DLLs/tcl86t.dll', 'c:/python/DLLs/tk86t.dll']
    )
base = 'Win32GUI' if sys.platform=='win32' else None    


executables = [
    Executable('plot.py', base=base)
]

setup(name='editor',
      version = '1.0',
      description = '',
      options = dict(build_exe = buildOptions),
      executables = executables)

Ось список бібліотек,що живуть в plot.py.
import matplotlib.pyplot as plt
import numpy as np
import os
from tkinter import *.

А ось помилку,яку видає після створення .exe.

22

(3 відповідей, залишених у Python)

Все виявилося не так вже й складно.

from tkinter import *
from tkinter.filedialog import *
import fileinput
 
def fun(event):
     global a 
     a = a1.get()
     b = b1.get()
      
root = Tk()

a1 = Entry(root)
b1 = Entry(root)


t1 = Label(root,text = 'Введіть статус поля(green). 1 --ввімкнено,0 --вимкнено')
t2 = Label(root,text = 'Введіть статус поля(blue). 1 --ввімкнено,0 --вимкнено')
but = Button(root,text='OK')

t1.pack()
a1.pack()
t2.pack()
b1.pack()

but.bind('<Button-1>',fun)
but.pack()
#print(a)
root.mainloop()

a =int(a)
print(a)

23

(3 відповідей, залишених у Python)

Всім доброго дня!  Виникла така проблема,потрібно повернути значиння а та b в коді й вивести їх. При такому коді воно не працює. Вв чому помилка? Дякую)

from tkinter import *
from tkinter.filedialog import *
import fileinput
 
def fun(event):
     a = a1.get()
     b = b1.get()
     return(a,b)
root = Tk()

a1 = Entry(root)
b1 = Entry(root)


t1 = Label(root,text = 'Введіть статус поля(green). 1 --ввімкнено,0 --вимкнено')
t2 = Label(root,text = 'Введіть статус поля(blue). 1 --ввімкнено,0 --вимкнено')
but = Button(root,text='OK')

t1.grid(row=2)
a1.grid (row=3,column=0)
t2.grid(row=4)
b1.grid()

but.grid()

but.bind('<Button-1>',fun)

a2,b2=fun('<Button-1>')

print(a2,b2)

root.mainloop()

24

(20 відповідей, залишених у Python)

koala написав:

Ну вибачте, там все червоним по білому написано. Навіть автоматичний переклад все коректно подає:
http://replace.org.ua/misc.php?action=pun_attachment&amp;item=1585

Ні,так я не говорив,що не розумію що там написано. Я говорив,що не знаю як це виправити.
Тобто python без різниці з яким розміром файлу працювати? Моя проблема в month = range(0,30000)?

25

(20 відповідей, залишених у Python)

koala написав:

Ви не натиснули "Add file".
Чому ви двічі обробляєте один файл? Робіть це один раз:

def extract_data(filename):
    ...
    return (names, numbers)
...
names, values = extract_data('0000.dat')

Але проблема ваша, гадаю, не в цьому, зачекаю на скріншот.

Ще раз Велике дякую,через брак знань дійсно не знав,що так можна

26

(20 відповідей, залишених у Python)

Ось скрін

import matplotlib.pyplot as plt
import numpy as np
 
def extract_data(filename):
    infile = open(filename, 'r')    
  #  infile.readline()       пропускаем первую строчку
    numbers = []
    names = []
    for line in infile:
        words = line.split()
        number = float(words[1])
        numbers.append(number)       
        name = str(words[0])
        names.append(name)  
 
    infile.close()
    return (names,numbers)
 

names,values = extract_data('0000.dat')
 
month = range (0,30000)
plt.xticks(month,names,rotation = 90,fontsize = 7)
 
plt.plot(month, values)
plt.grid(True)
plt.savefig('0005.png', dpi=2000)
plt.show()

27

(20 відповідей, залишених у Python)

Ще виникла така проблема,яку я без допомоги більш досвідчених людей не вирішу. При роботі з малими файлами все ок. А от при роботі з великим файлом(розмір 1021 кб,кількість рядків 30000) виникає проблема. Ось фото з помилкою

import matplotlib.pyplot as plt
import numpy as np
 
def extract_data(filename):
    infile = open(filename, 'r')    
  #  infile.readline()       пропускаем первую строчку
    numbers = []
    names = []
    for line in infile:
        words = line.split()
        number = float(words[1])
        numbers.append(number)       
        name = str(words[0])
        names.append(name)  
 
    infile.close()
    return numbers

def extract_data1(filename):
    infile = open(filename, 'r')    
    names = []
    for line in infile:
        words = line.split()   
        name = str(words[0])
        names.append(name)
    infile.close()
    return names

values = extract_data('0000.date')
names = extract_data1('0000.date')

month = range (0,30000)
plt.xticks(month,names,rotation = 90,fontsize = 7)
 
plt.plot(month, values)
plt.grid(True)
plt.savefig('0005.png', dpi=2000)
plt.show()

28

(20 відповідей, залишених у Python)

koala написав:

Перенесіть рядки 15-16 в кінець, перед 27-28.
І об'єднайте всі виклики xticks.

методом ctrl + c, ctrl+v  не вийшло. Лише змінивши код

import matplotlib.pyplot as plt
import numpy as np
 
def extract_data(filename):
    infile = open(filename, 'r')    
  #  infile.readline()       пропускаем первую строчку
    numbers = []
    names = []
    for line in infile:
        words = line.split()
        number = float(words[1])
        numbers.append(number)       
        name = str(words[0])
        names.append(name)  
 
    infile.close()
    return numbers

def extract_data1(filename):
    infile = open(filename, 'r')    
    names = []
    for line in infile:
        words = line.split()   
        name = str(words[0])
        names.append(name)
    infile.close()
    return names

values = extract_data('2.0.txt')
names = extract_data1('2.0.txt')

month = range (0,12)
plt.xticks(month,names,rotation = 90,fontsize = 7)
 
plt.plot(month, values)
plt.grid(True)
#plt.savefig('0005.png', dpi=2000)
plt.show()

29

(20 відповідей, залишених у Python)

koala написав:

А погуглити?

plt.xticks(month,names,rotation=45)

чи скільки там вам треба.

Гугглив,однак протягом довгого часу не зміг знайти  тому вирішив запитати на форумі,а сьогодні ви дали відповідь.
Як результат вийшло наступне:

import matplotlib.pyplot as plt
import numpy as np

def extract_data(filename):
    infile = open(filename, 'r')    
  #  infile.readline()       пропускаем первую строчку
    numbers = []
    names = []
    for line in infile:
        words = line.split()
        number = float(words[1])
        numbers.append(number)       
        name = str(words[0])
        names.append(name)
        month = range (0,30000)
        plt.xticks(month,names)
        

    infile.close()
    return numbers


values = extract_data('0005.txt')

month = range(0,30000)

plt.xticks(rotation = 90)
plt.xticks(fontsize = 5)

plt.plot(month, values)
plt.grid(True)
plt.savefig('0005.png', dpi=2000)
plt.show()

30

(20 відповідей, залишених у Python)

koala написав:

Додайте теґ code (кнопка <> в інструментах).
Ну і збираєте перший стовпчик у щось на кшталт names за аналогією з numbers (тільки з індексами по month, це самі думайте, як), а далі

plt.xticks(month,names)

Дякую за допомогу!
Однак якщо можна можете допомогти з поворотом назви місяця на графіку? Типу якщо буде велике слово,то відбудеться накладання,що унеможливить читання.

31

(20 відповідей, залишених у Python)

LoganRoss написав:

А в чому власне проблема?

Ну в тому,що я не маю уявлення як це правильно зробити
Не знаю як змінити цифри(які є автоматично) на інформацію з першого стовбця(типу місяці)
Який вигляд матеме код?
В мене є таке :

def extract_data(filename):
    infile = open(filename, 'r')    
    infile.readline()      # пропускаем первую строчку
    numbers = []
    
    for line in infile:
        words = line.split()
        number = float(words[1])
        numbers.append(number)       
        
       
    infile.close()
    return numbers

values = extract_data('rainfall.txt')
print (values[:-1])
import matplotlib.pyplot as plt
month = range (1,13)
plt.plot(month, values[:-1], 'o--')
plt.grid(True)
plt.show()

Всім доброго дня!
Нещодавно зіткнувся  з певною проблемою,яка мені виявилася не посилах. Саме тому вирішив звернутися на форум.
Проблема полягає в наступному: є файл. В ньому є певні дані,наприклад,місяць та кількість опадів. Потрібно побудувати графік(тобто інформація зчитується з файлу),однак потрібно щоб на вісі ОХ відображалася інформація з першої колонки(в даному випадку - це назва місяців)