terça-feira, 18 de abril de 2023

Regressão linear multi grupo / predição / coeficiente angular e significância

 import pandas as pd

import matplotlib.pyplot as plt

import numpy as np

from sklearn.linear_model import LinearRegression




plt.style.use('ggplot')

df = pd.read_csv('data.csv')

df_1 = df[df['sp'] == 1]

df_2 = df[df['sp'] == 2]

df_3 = df[df['sp'] == 3]

df_4 = df[df['sp'] == 4]

df_5 = df[df['sp'] == 5]

#df_1 = df[df['sp'] == 'ancistrus']

sp1_fit = np.polyfit(df_1.cp, df_1.peito, 1)

sp2_fit = np.polyfit(df_2.cp, df_2.peito, 1)

sp3_fit = np.polyfit(df_3.cp, df_3.peito, 1)

sp4_fit = np.polyfit(df_4.cp, df_4.peito, 1)

sp5_fit = np.polyfit(df_5.cp, df_5.peito, 1)


# Scatter plots.

#ax1 = df[df['nome_coluna'] == 'nomelinha'].plot(kind='scatter', x='nomecolunaA', y='nomecolunaB', color='blue', alpha=0.5, figsize=(10, 7))

ax1 = df[df['sp'] == 1].plot(kind='scatter', x='cp', y='peito', color='blue', alpha=0.5, figsize=(10, 7))

df[df['sp'] == 2].plot(kind='scatter', x='cp', y='peito', color='red', alpha=0.5, figsize=(10 ,7), ax=ax1)

df[df['sp'] == 3].plot(kind='scatter', x='cp', y='peito', color='purple', alpha=0.5, figsize=(10 ,7), ax=ax1)

df[df['sp'] == 4].plot(kind='scatter', x='cp', y='peito', color='orange', alpha=0.5, figsize=(10 ,7), ax=ax1)

df[df['sp'] == 5].plot(kind='scatter', x='cp', y='peito', color='green', alpha=0.5, figsize=(10 ,7), ax=ax1)

plt.legend(labels=['nomes', 'nomes2'])

plt.title('titulo', size=24)

plt.xlabel('nomeBarrax', size=18)

plt.ylabel('nomeBarraY', size=18);


# regression lines

plt.plot(df_1.cp, sp1_fit[0] * df_1.cp + sp1_fit[1], color='darkblue', linewidth=2)

plt.plot(df_2.cp, sp2_fit[0] * df_2.cp + sp2_fit[1], color='deeppink', linewidth=2)

plt.plot(df_3.cp, sp3_fit[0] * df_3.cp + sp3_fit[1], color='purple', linewidth=2)

plt.plot(df_4.cp, sp4_fit[0] * df_4.cp + sp4_fit[1], color='orange', linewidth=2)

plt.plot(df_5.cp, sp5_fit[0] * df_5.cp + sp5_fit[1], color='green', linewidth=2)


# legend, title and labels.
plt.legend(labels=['Males Regresion Line', 'Females Regresion Line', 'Males', 'Females'])
plt.title('Relationship between Height and Weight', size=24)
plt.xlabel('Height (inches)', size=18)
plt.ylabel('Weight (pounds)', size=18);

# rodar os 3 juntos


lr_espinho = LinearRegression()

lr_espinho.fit(df_1[['cp']], df_1['peito'])

print(lr_espinho.intercept_)


sp1_fit = np.polyfit(df_1.cp, df_1.peito, 1)

sp2_fit = np.polyfit(df_2.cp, df_2.peito, 1)


#Coeficiente Angular  

print(np.polyval(sp1_fit, [50]))

# 60 [17.82209715]  - 50[14.26088829] #x=50 e x=60

#3.56 / diferença do X(10)

print(np.polyval(sp2_fit, [60]))

#60 [17.1713] & 50[13.7081]

#3.46


Ex: tabela csv


Ex: resultado 


 



quinta-feira, 12 de janeiro de 2023

Gerar TXT nome com data

from datetime import datetime

        self.txts=[]

        self.file_name = 'fishfromKML{}.txt'.format(datetime.now().strftime("%Y%m%d%H%M%S%z"))

        self.txts.append(self.nomes)

        with open (self.file_name, 'w') as self.f:

            self.f.write(str(self.txts)) 

self.nomes = ['casa']

Abrir arquivo (Open File)

 

Import CSV

from tkinter import *

import pandas as pd

with open('Filename.csv',newline='') as self.myfile:

            self.csv_file = csv.reader(self.myfile, delimiter=',')

 

            self.Menusyn=[]

            for i in self.csv_file:

                self.Menusyn.append(i[0])

            self.syn = list()

            for self.value in self.Menusyn:

                if self.value not in self.syn:

                    self.syn.append(self.value)

        def textnome(event):

            self.doctext = pd.read_csv("Filename.csv",encoding='utf-8')

            self.readertx = pd.DataFrame(self.doctext)

            self.nomeerrado= self.doctext.columns[0]

            self.doc_selecao = self.readertx.loc[self.readertx[self.nomeerrado] == self.Combosyn.get()]

            self.linhatx = 0

            self.frame = 4

            while self.linhatx < len(self.doc_selecao):

                       self.locali = self.doc_selecao.iloc[self.linhatx,1]

                       tk.Label(self.brachs, text = self.locali).grid(row=self.frame,column=2)

                       tk.Label(self.brachs, text = "Current name").grid(row=3,column=2)

                       self.linhatx = self.linhatx+1

                       self.frame = self.frame+1

        self.brachs = root

        self.frame = tk.Frame(self.brachs)

        self.brachs = Tk()

        self.brachs.geometry("500x100")

        tk.Label(self.brachs, text = "Nome").grid(row=1,column=1)

        self.brachs.title("Find name")

        self.Combosyn = ttk.Combobox(self.brachs, width = 30, height = 20)

        self.Combosyn.grid(row=2, column=1)

        self.syn=sorted(self.syn)

        self.Combosyn ['values']= self.syn

        self.Combosyn.bind("<<ComboboxSelected>>",textnome)

Adicionar imagem no Frame

 

pip install pillow

from PIL import ImageTk, Image       

        widget1 = Frame(master)

        #rootFrame.Destroy()

        widget1.grid()

        imagem = ImageTk.PhotoImage(Image.open("namephoto.png"))

        image = Image.open("namephoto.png")

        photo = ImageTk.PhotoImage(image)

        imagem = Label(master, text = "infomation", image = photo)

        imagem.image = photo

        imagem.grid()

        teste = Label(widget1)

        teste.grid()       

terça-feira, 10 de janeiro de 2023

Setup - gerar exe

from cx_Freeze import setup, Executable


import os, sys

import cx_Freeze

base='win32GUI'

#if sys.platform =="win32":

#    base = 'win32GUI'

#sys.setrecursionlimit(100000)

sys.argv.append("build")

#python runexecx.py bdist_msi # ou # python runexecx.py build# no cmd digitar 

build_exe_opitions= {'packages':['tkinter', 'datetime', 'geopandas', 'pandas', 'csv', 'os', 'sys', 'PIL', 'webbrowser', 'html'],'include_files':['Chave_sinonimia.csv','mapa1.HTML','Peixe.png','ibicui.json'], 'excludes':['matplotlib','numpy', 'abc', ' argparse', 'asyncio', 'atexit', 'base64', 'bdb', 'binascii', 'bisect', 'bz2', 'calendar', 'cmd', 'codecs', 'codeop', '__future__', 'collections', 'collections.abc', 'concurrent', 'contexlib', 'copy', 'copyreg', 'ctypes', 'dataclasses', 'decimal', 'difflib', 'dis', 'distutils', 'doctest', 'email', 'enum', 'errno', 'fnmatch', 'fractions', 'functools', 'gc', 'genericpach', 'getopt', 'gettext', 'glob', 'heapq', 'hashlib', 'http', 'importlib', 'inspect', 'io', 'intertools', 'keyword', 'lib2to3', 'linecache', 'locale', 'logging','marshal', 'math', 'msvcrt', 'multiprocessing', 'nt', 'ntpach', 'numbers', 'opcode', 'operator', 'os.pach', 'pach', 'patchlib', 'pdb', 'pkgutil', 'platform', 'plistlib', 'posixpath', 'pprint', 'pydoc', 'pydoc_data', 'quopri', 'random', 're', 'reprlib', 'runpy', 'select', 'selectors', 'shlex', 'shutil', 'signal', 'soket', 'sre_copile','sre_constants', 'sre_parse', 'stats', 'statistics', 'string', 'stringprep', 'struct', 'subprocess', 'sysconfig', 'tarfile', 'tempfile', 'test', 'textwrap', 'threading', 'time', 'token', 'tokenize', 'traceback', 'tracemalloc', 'tty', 'types', 'tuping', 'unicodedata', 'unittest', 'urllib', 'warnings', 'weakref', 'winreg', 'xml', 'xmlrpc', 'zipfile', 'zipimport', 'zlib' ]}

cx_Freeze.setup(name='teste', executables=[Executable('pograma_instalpy.py', base = base)],)

def find_data(filename):#15:48

    if getattr(sys, 'frozen', False):

        datadir=os.patch.dirname(sys.executable)

    else:

        datadir = os.path.dirname(__file__)

    return os.patch.join(datadir,filename)