Ir para conteúdo
Fórum Script Brasil

Wilson Avila

Membros
  • Total de itens

    23
  • Registro em

  • Última visita

Posts postados por Wilson Avila

  1. 40 minutos atrás, ArteEN disse:

    você pode fazer um input no terminal, e adicionar em qualquer lugar no grafico com

    
    texto = input()
    plt.text(x,
             y,
             f'{texto}:00hrs')

    claro que você tem que levar em conta que isso deve ser feito antes de aparecer a janela do grafico, pois aqui comigo,  a janela do grafico trava a entrada do terminal

    Está assim!     Que hora pretende passar pela Free Way?__:00 horas  23          , tem como preencher a hora no lugar dos traços e não depois como está?

  2. 3 minutos atrás, ArteEN disse:

    isso é só mais um plt.text no grafico, ou você pode alterar o titulo do grafico

    Não me fiz entender!! No caso a entrada de dados via input, só completar algo já escrito, como pedir  hora e induzir que seja hora fechada tipo __:00h. Lembro de ter visto algo parecido em C++, mas não achei nada...

  3. 1 hora atrás, ArteEN disse:

     

    tem, para grafico com barra só usar

    
    ax = media.mean().plot.bar()

     

    para colocar os numeros vai ser um pouco mais complicado, veja este video

     

    d5 = df[label[3]]==5
    media = df[d5].loc[:, (label[0], label[4])].groupby(label[4])
    
    for barra in (d5,media):
        for b in barra.get_media:
            plt.text(b.get_x() + 0.3,
                    b.get_height()+ 0.2,
                    int (b.get_height()))

    Desculpe incomodar novamente, mas o segundo for está dando erro!!

     

  4. 4 horas atrás, ArteEN disse:

    deu um trabalhinho chegar nisso aqui

    
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt 
    
    label = ['velocidade', 'classe', 'Faixa', 'dia' , 'hora']
    data = [ 
            [106, 1, 2, 5, 0], 
            [87, 1, 3, 5, 0], 
            [78, 1, 3, 5, 1], 
            [74, 1, 3, 5, 1], 
            [75, 1, 3, 5, 1], 
            [88, 1, 2, 5, 2], 
            [130, 1, 2, 5, 2], 
            [76, 1, 2, 5, 3], 
            [77, 1, 3, 5, 3]
    ]
    
    df = pd.DataFrame(data, columns=label)
    
    d5 = df[label[3]]==5
    media = df[d5].loc[:, (label[0], label[4])].groupby(label[4])
    
    ax = media.mean().plot()
    plt.xticks(range(4), range(4))                                                                                         
    plt.show()

     

    Deixei assim!! São 952mil linhas para tratar!!

    mport pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    pd.read_csv
    df = pd.read_csv("transito8.csv")
    
    label = ['velocidade', 'classe', 'Faixa', 'dia' , 'hora']
    
    d5 = df[label[3]]==5
    media = df[d5].loc[:, (label[0], label[4])].groupby(label[4])
    
    ax = media.mean().plot()
    plt.title('Velocidade Média do Dia')
    plt.xticks(range(24), range(24))
    plt.show()

     

    Ficou show!!

    Tem como ficar em barras e o valor aparecer no topo delas?

  5. Em 07/11/2019 em 23:54, Wilson Avila disse:
    
    aux = df[df["dia"] == 5]
    aux1 = df[df["hora"]==23]

    Assim consigo separar os dias e horas, mas não consigo achar uma forma de separar as 23 horas dos dias 5!!!

    Acertei!!

    
    aux = df[(df["dia"] == 5 ) & (df["hora"] == 23)]

    a velocidade media ficou assim 

    
    print(aux.mean()["velocidade"])

    Como posso criar um gráfico de velocidade média te todo o dia, por hora? Testei muita coisa mas sempre inverte a lista toda e não só o dia que foi escolhido!

  6. aux = df[df["dia"] == 5]
    aux1 = df[df["hora"]==23]

    Assim consigo separar os dias e horas, mas não consigo achar uma forma de separar as 23 horas dos dias 5!!!

    Acertei!!

    aux = df[(df["dia"] == 5 ) & (df["hora"] == 23)]

    a velocidade media ficou assim 

    print(aux.mean()["velocidade"])
  7. 28 minutos atrás, ArteEN disse:

    sendo sincero não sei onde esta o erro,  para ajudar você pode evitar resolver o problema em uma unica linha, e dividir em variaveis para encontrar onde esta o erro

    
    dia = df.loc[(df['dia'])==('2')]
    hora = df.loc[(df['hora'])==('23')]
    velocidade_media = (dia & hora).mean()['velocidade']

    desse jeito fica mais facil apontar onde deve ser aterado

    a ideia é ter um comando por linha, então se ainda não consegir identificar onde esta o problema com as tres linhas a cima, você pode separar mais os comando em 5 linhas

    
    dia = df['dia']
    dia2 = df.loc[dia==('2')]
    
    hora = df['hora']
    hora2 = df.loc[hora==('23')]
    
    velocidade_media = (dia2 & hora2).mean()
    velocidade_media2 = velocidade_media['velocidade']

     

    Não apontou nenhum erro!!

    C:\Users\wabro\PycharmProjects\trabalho transito\venv\lib\site-packages\pandas\core\ops\__init__.py:1115: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
      result = method(y)
    nan
     

  8. Boa noite!

    O que pode estar errado?

    velocidade_media =(((df.loc[(df['dia'])==('2')]) & (df.loc[(df['hora'])==('23')])).mean()['velocidade'])
    print(velocidade_media)

    mensagem:

    "C:\Users\wabro\PycharmProjects\trabalho transito\venv\Scripts\python.exe" "D:/PycharmProjects/untitled/teste pandas 07 nov.py"
    C:\Users\wabro\PycharmProjects\trabalho transito\venv\lib\site-packages\pandas\core\ops\__init__.py:1115: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
      result = method(y)
    nan

    Process finished with exit code 0
     

    Em 06/11/2019 em 11:17, ArteEN disse:

    O brigado!

    Já consegui assim!!

    mngr = plt.get_current_fig_manager()
    mngr.window.geometry("400x400+950+0")
    plt.show()

    A janela ficou com 400X400 na posição 950 em x e 0 em y. No canto superior direito.

  9. 7 minutos atrás, ArteEN disse:
    
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt 
    
    tabela = [[2, 4, 2, 5], 
              [3, 0, 5, 7], 
              [0, 4, 2, 1], 
              [9, 6, 9, 1]] 
    
    campos = ['A', 'B', 'C', 'D']
    
    df = pd.DataFrame(np.array(tabela), columns=campos) 
    # df = pd.read_csv("transito7.csv")
    
    coluna_filtrada = df.loc[:, 'A']                                                                                       
    
    ax = coluna_filtrada.plot()
    ax.set_position([.3, .3, .6, .6])
    plt.show()

    se baseia no codigo atualizado

    resolvi assim:

    df["hora"].value_counts().plot.barh().set_position([.3, .3, .6, .6])
  10. 19 minutos atrás, ArteEN disse:
    
    ax.set_position([.3, .3, .6, .6])

    só brincar com os numeros que você chega onde quer

    Apareceu este erro!! NameError: name 'ax' is not defined e eu gostaria e que o quadro(janela) da figura que o gráfico esta dentro, ficasse em uma posição que poderia ver os outros dados gerados, tipo no canto superior direito e q não fosse tão grande!

  11. Em 04/11/2019 em 22:29, ArteEN disse:

    seu codigo esta ainda bem cru (meme do joaquim)

    
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt 
    
    tabela = [[2, 4, 2, 5], 
              [3, 0, 5, 7], 
              [0, 4, 2, 1], 
              [9, 6, 9, 1]] 
    
    campos = ['A', 'B', 'C', 'D']
    
    df = pd.DataFrame(np.array(tabela), columns=campos) 
    # df = pd.read_csv("transito7.csv")
    
    coluna_filtrada = df.loc[:, 'A']                                                                                       
    
    ax = coluna_filtrada.plot()
    plt.show()

    fiz o codigo em cima de uma tabela basica apenas para demonstração, deixei comentada a linha para importar seu csv, mas você tem que altera a forma de filtrar a informação de acordo com seu dataframe

    Consegui fazer o gráfico aparecer! só faltava  plt.show!! Ficou Show!!

    Tem alguma forma de determinar a posição do gráfico na tela? Queria que aparecesse no canto superior  direito.

  12. meu código está assim: não consegui colocar a tabela de dados transito7

    import csv
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    pd.read_csv
    df = pd.read_csv("transito7.csv")
    df
    df.head()
    
    print(df.groupby("hora").mean())
    print(df["velocidade"].plot.hist())
  13. Obrigado! O pandas está ajudando muiito! Achei a biblioteca matplotlib para representação gráfica, só que não está gerando os gráficos, como eu havia lido? O q pode estar acontecendo? Está retornando AxesSubplot(0.22375,0.11;0.5775x0.77) por exemplo...

     

  14. Sou iniciante em programação e preciso separar uma série de dados importados do Excel (csv), os mesmos estão em 4 colunas e centenas de linhas.  Preciso identificar as linhas que tenham a coluna de dados em comum e separa-las em outra 'lista'. Tipo um filtro!! Para depois usar estes dados para fazer cálculos estatísticos.

    Qual seria a sugestão de ferramenta ou formas de chegar a essa lista de dados?

×
×
  • Criar Novo...