Escolar Documentos
Profissional Documentos
Cultura Documentos
CONFIABILIDADE
Sumário
TERMOS E DEFINIÇÕES 3
PARTE I - MÉTODOS QUANTITATIVOS E QUALITATIVOS 6
1. INTRODUÇÃO 7
2. ENGENHARIA DA CONFIABILIDADE – ABORDAGEM QUANTITATIVA 9
2.1 Medidas de confiabilidade 10
2.2 Métodos de estimação 11
2.3 Testes de aderência 11
2.4 Funções de densidade de probabilidade e de falha acumulada 12
2.5 Função confiabilidade 13
2.6 Função taxa de falha 13
2.7 Confiabilidade instantânea 14
2.8 Modelos de blocos 15
3. ENGENHARIA DA CONFIABILIDADE – ABORDAGEM QUALITATIVA 18
4. GESTÃO DA CONFIABILIDADE 22
PARTE II - PYTHON 28
5. INTRODUÇÃO À PROGRAMAÇÃO COM PYTHON 29
5.1 Introdução à programação 29
5.2 Conceitos básicos de python 35
5.3 Desenvolvendo funções e classes 40
5.4 Importação de dados 46
5.5 Tratamento de dados 50
5.6 Geração de gráficos 57
6. REFERÊNCIAS 73
TERMOS E DEFINIÇÕES
𝑡
𝐹(𝑡) = Pr (𝑇 ≤ 𝑡) = ∫0 𝑓 (𝑡)𝑑𝑡, 𝑡 > 0 (2.1)
∞
𝑀𝑇𝑇𝐹 = ∫0 𝑡. 𝑓(𝑡)𝑑𝑡 (2.3)
2.5 Função confiabilidade
A função confiabilidade R(t), pode ser obtida como um complemento da função
acumulada de falha F(t), resultando a Equação 2.4. Ao considerar um cenário
em que os componentes são testados, existem probabilidades de falhas e de
sucessos. A função R(t) é definida como a acumulação de sucesso no tempo, ou
seja, a probabilidade de que não existam falhas em um intervalo de tempo (t)
(FOGLIATTO e RIBEIRO, 2009).
ou,
1
𝜆(𝑡) = 𝑓(𝑡). (2.6)
𝑅(𝑡)
𝑡
𝑅(𝑡) = 𝑒𝑥𝑝 [− ∫0 ℎ(𝑡). 𝑑𝑡] = 𝑒 −𝜆.𝑡 (2.7)
𝑅𝑠 = ∏𝑛𝑖=1 𝑅𝑖 (2.8)
Onde:
Rs – Confiabilidade do Sistema
Ri – Confiabilidade do enésimo componente
N – Número de subsistemas ou componentes que formam o sistema
Exemplo 1:
Três subsistemas estão conectados em série formando um sistema, com as
seguintes confiabilidades em 100 horas. Qual a confiabilidade do sistema para
uma missão de 100 horas?
Exemplo 2:
Para o FMEA, a falha de um produto ocorre quando o produto não funciona como
deveria ou quando tem um mal funcionamento de alguma forma. Mas, falhas não
são limitadas apenas a falhas com produtos, elas também ocorrem de erros de
um usuário durante a operação. Por isso, o FMEA deve focar nessas falhas para
trazer o produto perto dos 100% da satisfação do cliente.
A forma na qual um equipamento, uma máquina, um produto ou um processo
pode falhar é chamado de modo de falha. Cada modo de falha tem uma causa
raiz, um efeito em potencial e um risco relativo associado. Por isso, eles devem
ser avaliados para poderem ser priorizados e seus riscos reduzidos. Três fatores
determinam o risco de uma falha: severidade, ocorrência e detecção. A
severidade da falha mede a consequência dessa falha se ela ocorrer. A
ocorrência de uma falha significa a probabilidade de ela ocorrer. A detecção
representa a probabilidade da falha ser identificada antes do impacto de seu
efeito ser percebido.
Tabela 3.2: Escala de severidade para FMEA de processo (CARLSON, 2014)
Critério:
Categoria (Processo) Escala
Severidade do efeito no processo
Efeito potencial relacionado à segurança do
operador da máquina ou da montagem, sem 10
Falha ao atingir requisitos aviso.
de segurança ou
regulatórios Efeito potencial relacionado à segurança do
operador da máquina ou da montagem, com 9
aviso.
> 50 % do produto deve ser jogado fora.
Perda ou degradação da Linha deve ser parada. 8
função primária / Quebra
de linha < 50 % do produto deve ser jogado fora.
7
Diminuição da velocidade da linha.
Os valores de cada fator diferem de acordo com o tipo de FMEA que está sendo
utilizado. No geral, existem 3 tipos: Sistema, Produto e Processo. O FMEA de
sistema é usado nas etapas iniciais do desenvolvimento de um produto para
descobrir problemas e falhas funcionais de um sistema por completo (composto
de vários subsistemas) que poderia fazer com que o sistema por completo não
funcionasse como pretendido. O FMEA de produto é focado no projeto do
produto a nível de subsistema ou de componente. O FMEA de processo é
utilizado para descobrir problemas relacionados à manufatura do produto. Ele
enfatiza como o processo de manufatura pode ser melhorado para garantir que
o produto é construído de acordo com os requisitos de projeto de uma maneira
segura, com o mínimo tempo de parada, refugo e retrabalho. As escalas
utilizadas aqui nesta apostila levam em consideração o FMEA de processo e são
mostradas nas Tabela 3.1, Tabela 3.2 e Tabela 3.3.
4. GESTÃO DA CONFIABILIDADE
Suportada das análises estatísticas de confiabilidade (quantitativa), e gestão de
análises, métodos e ferramentas da confiabilidade (qualitativa). Faz-se
necessário abordar a gestão sobre este arcabouço de informações, técnicas e
métodos. Desta forma, explora-se toda a estrutura que permite aumentar a
confiabilidade dos ativos através, por exemplo, de planos de manutenção,
estrutura de locais de instalação “taxonomia”, definição de criticidade dos ativos,
engenharia da lubrificação, monitoramento preditivo, procedimentos técnico-
operacionais, entre outros.
Uma das principais entregas da engenharia de confiabilidade é a estratégia de
planos de manutenção e para isto é utilizado o conceito de RCM – Reliability
Centered Maintenance ou MCC – Manutenção Centrada em Confiabilidade.
O RCM é um processo usado para determinar o que deve ser feito para garantir
que um ativo continue a fazer aquilo que seu usuário espera no presente
contexto operacional. Gerenciar o risco das falhas e suas consequências. Evita
gerar ações desnecessárias que geram custos e inserem novos modos de falha
com as frequentes desmontagens, reparos e remontagens periódicas.
Não é uma cultura a ser inserida e nem tampouco uma ferramenta para gerar
apenas os planos de manutenção, mas sim uma ferramenta abrangente para
garantir a função dos ativos. Foi adaptado para indústria em geral por John
Moubray, chamado de RCMII e publicado em 1990 suportado pelo padrão SAE
JA1012.
O RCM baseia-se, além do estudo da função do ativo, também na análise da
estratégia a ser definida para a manutenção mais adequada conforme gráfico do
intervalo P-F (Falha Potencial / Funcional).
Dados e informações
Comumente são confundidos os conceitos de dados e de informação. Dados são
todas as observações documentadas ou resultados de medição. É qualquer tipo
de material em formato desorganizado que geralmente não tem significado
próprio isoladamente. Ou seja, é um fato sem qualquer contexto. Já informação
é o resultado do processamento dos dados originais, possuindo assim, valor e
significado.
Os dados são classificados em 4 categorias, mostradas na Figura 5.2. Esses
dados podem variar dependendo do que estão medindo. Dados ordinais discreto
seguem uma escala com uma relação de ordem entre eles: idade de uma
pessoa, notas escolares, e a posição no pódio após uma competição. Dados
nominais discretos são aqueles que não têm nenhuma relação de ordem como
pode ser observado nos nomes dos grupos, gêneros de seres humanos etc.
Além disso, dados cardinais discretos são aqueles que são contáveis dentro de
um intervalor como o número de estudantes em uma sala ou o número de falhas
em uma máquina. Dados contínuos são aqueles que possuem infinitos números
dentro de um intervalo, como pode ser visto na temperatura de uma sala.
Sistemas de numeração
Nos sistemas digitais ou na computação, é frequente se recorrer a diferentes
sistemas numéricos para proceder à representação da informação digital. Alguns
dos mais utilizados são os seguintes:
• Decimal (base 10)
O sistema de numeração decimal usa dez algarismos e é o sistema mais
utilizado por seres humanos. Normalmente é utilizado para indicar
quantidades, e é constituído por dez algarismos: 0,1,2,3,4,5,6,7,8,9. No
sistema decimal cada algarismo tem um valor posicional, ou seja, cada
algarismo tem um peso de acordo com a sua posição na representação
do valor (unidades, centenas, dezenas...)
• Binário (base 2)
O sistema binário é o mais frequente no mundo da computação. São
utilizados 0 e 1 (pois facilita a representação de tensões). Os sistemas
digitais trabalham internamente com dois estados (ligado/desligado,
verdadeiro/falso, aberto/fechado). Ele utiliza os símbolos: 0, 1, sendo
cada símbolo designado por bit (binary digit).
• Octal (base 8)
O sistema octal foi muito utilizado no mundo da computação, como uma
alternativa mais compacta do sistema binário, na programação em
linguagem de máquina. Esse é um sistema de numeração de base 8, ou
seja, recorre a 8 símbolos (0,1,2,3,4,5,6,7) para a representação de um
determinado valor. Atualmente, o sistema hexadecimal é um dos mais
utilizados como alternativa viável ao sistema binário.
• Hexadecimal (base 16)
Sistema de numeração muito utilizado na programação de
microprocessadores, especialmente nos equipamentos de estudo e
sistemas de desenvolvimento. Utiliza os símbolos: 0,1,2,3,4,5,6,7,8,9 do
sistema decimal e as letras A,B,C,D,E,F. Equivalências:
A=10,B=11,C=12,D=13,E=14 e F=15. Utilizados em aplicações para
denominar cores, registradores e memória.
Variável
Uma variável em programação representa, através de símbolos, o conteúdo de
uma célula ou posição de memória. Por exemplo, se uma variável de nome x
possui o valor 10, significa que a posição de memória, representada pelo símbolo
x, armazena o valor 10. Em programação, podemos enxergar a memória como
um conjunto de posições que possuem um endereço e uma representação
simbólica (variável).
As variáveis podem ter nomes diversos, desde símbolos comuns na matemática,
como é o caso das variáveis x, y e z, até nomes como var, endereco, cpf etc.
Perceba também que os valores que as variáveis podem armazenar não se
limitam apenas a valores numéricos inteiros. Elas podem armazenar, por
exemplo, um conjunto de caracteres, como é o caso da variável z = ‘aula’, e
valores fracionários, como é o caso das variáveis y = 20,5 e var = -1.700,23.
As variáveis possuem escopo dentro de uma rotina ou todo o programa. São as
chamadas variáveis locais e globais. As variáveis locais são aquelas acessadas
apenas dentro de uma rotina ou função, e as variáveis globais são acessadas
em qualquer ponto do programa a qualquer momento.
As variáveis podem, por sua vez, ser representadas de forma primitiva (inteiros,
reais, caracteres...) ou de forma estruturada (vetores, registros, matrizes, listas).
Algoritmos
Um algoritmo é um conjunto de passos, numa determinada sequência, para
realizar uma tarefa. Este possui como características a Definição, Finitude,
Efetividade, Entradas e Saídas. Definição diz respeito de que os passos de um
algoritmo devem ser bem definidos, objetivando a clareza e evitando
ambiguidades. A Finitude diz que um algoritmo deve chegar ao seu fim após um
número finito de passos. A Efetividade diz que um algoritmo deve ser efetivo, ou
seja, suas operações devem ser básicas o suficiente para que possam, em
princípio, serem executadas de maneira exata e em um tempo finito. Um
algoritmo deve possuir zero ou mais Entradas. Estas são insumos ou
quantidades que são processados pelos algoritmos durante a execução de seus
passos. Um algoritmo deve possuir uma ou mais Saídas. Elas representam o
resultado do trabalhado realizado pelos algoritmos.
Existem algumas formas de se representar um algoritmo. As 3 mais utilizadas
são a Descrição Narrativa, Fluxograma e a Linguagem Algorítmica. Na descrição
narrativa Os algoritmos são expressos em linguagem natural (português, inglês,
francês, espanhol, etc.). Sua principal desvantagem se encontra no fato da
linguagem natural estar bem distante da linguagem utilizada pelos
computadores. Logo, a tradução de uma para a outra se torna uma atividade
bastante dispendiosa. Além disso, linguagens naturais são mais propensas a
ambiguidades. Muitas vezes uma palavra pode ter vários significados,
dependendo do contexto no qual são utilizadas. Em contrapartida, é bem mais
fácil elaborar um algoritmo por meio de uma linguagem com a qual já temos uma
certa familiaridade, do que através de linguagens que não são utilizadas com
frequência no dia a dia. Abaixo, um exemplo de algoritmo para fritar ovo.
Além dessa desvantagem, por impor regras para sua utilização de acordo com
cada forma geométrica, há uma limitação no seu poder de expressão, se
comparado com a descrição narrativa. A Figura 5.4 mostra um exemplo de
fluxograma para o cálculo da média final de um aluno com base em suas notas
e classificá-lo como aprovado ou reprovado.
ALGORITMO
DECLARE nota1, nota2, M : NUMÉRICO
LEIA nota1
LEIA nota2
M ← (nota1 + nota2) / 2 (A posição de
memória, representada simbolicamente por
M, recebe o valor da soma de nota1 e
nota2, dividido por dois.)
SE M >= 7.0 ENTÃO
ESCREVA “Aprovado”
SENÃO
ESCREVA “Reprovado”
FIM-SE
FIM_ALGORITMO.
Em relação aos laços “While” e “For”, estes são laçoeles são, no conceito
semelhantes, mas diferem na implementação via que código, que dependerá da
linguagem utilizada. Abaixo segue um exemplo de laço “While” e “For”.
LEIA nota
ENQUANTO nota <> -1 FAÇA
SE nota >= 7 ENTÃO
ESCREVA "Aprovado"
SENÃO
ESCREVA "Reprovado"
LEIA nota
FIM-ENQUANTO
Strings
Um tipo de variável é a string. Ela é composta por caracteres e forma um texto,
ou frases. Strings são escritas entre aspas simples ou duplas (“”, ‘’). Um exemplo
de como manipular uma string é dado abaixo. Para facilitar o entendimento do
código, são adicionados comentários após cada linha. Tudo que estiver após “#’
é um comentário em Python. Portanto, não é compilado pelo programa.
Caso se queira imprimir na tela uma variável em uma posição específica, deve-
se adicionar { } na posição que se deseja e, após a string, deve-se escrever
“.format(nome_da_variável)” para mostrar que se quer formatar a string e quais
variáveis se quer mostrar. O resultado do comando será “Quero inserir a string
Esta é uma string.”
if x > 20:
print("Número é maior que 20") #imprime a string > 20
else:
print("Número é menor que 20") #imprime a string < 20
if x > 20:
print("Número é maior que 20") #imprime a string > 20
elif x < 20 AND x >= 15:
print("Número entre 20 e 15 ") #imprime a string entre 15 e
#20, com 15 sendo inserido no intervalo
else:
print("Número é menor que 15") #imprime a string < 15
Funções
Para se declarar uma função, é importante ter o algoritmo em mãos. As funções
podem ter 0 ou várias entradas (parâmetros) e devem ter retornar “nulo” ou
diferentes variáveis. A estrutura para se declarar uma função é descrita abaixo.
Percebe-se também os comentários escritos entre dois trios de aspas duplas ("""
comentários """). Estes têm a função de documentação da função e serve para
facilitar o entendimento do que foi feito. Este é o padrão utilizado pelos
desenvolvedores que utilizam Python.
Args:
Escrever que parâmetros de entrada são utilizados
Returns:
Escrever quais são as saídas retornadas
"""
ações #realiza as ações
return variável(éis) de retorno #retorna as saídas
def escreve_ola():
"""Esta função imprime "Olá Manutenção" na tela
Args:
Nenhum
Returns:
Nenhum
"""
print("Olá Manutenção") #imprime na tela a string
i = 4 #atualiza a variavel i
print(i) #imprime na tela o valor da variavel
def calcula_media(a,b):
"""Esta função calcula a média entre dois números
Args:
a : o primeiro número
b : o segundo número
Returns:
A média entre a e b
"""
return (a+b)/2 #soma os número e divide por 2
Para executar essas funções e obter informações sobre essas mesmas funções,
deve-se fazer da seguinte forma (lembrando que a segunda função retorna um
valor):
Classes
As classes representam o nosso dia-a-dia. A interação entre instâncias de
classes (ou objetos) mostra como o nosso mundo funciona. As classes possuem
atributos e métodos. Atributos são as características da classe (ex.: patas de um
cachorro, número de dedos de uma pessoa, etc) e métodos são funções que
alteram o estado da classe. Porém, quando se é alterado o estado de um objeto,
o estado de outro objeto semelhante não é influenciado. Um exemplo é quando
se possui 2 TVs e se executa o método “ligar” em apenas uma delas. Uma TV
fica ligada, enquanto a outra se mantém desligada. A estrutura genérica para a
criação de uma classe é dada a seguir. A documentação de uma classe se
mantém semelhante à documentação de uma função, porém com nomenclaturas
diferentes. Percebe-se que o metodo1 necessita de entradas e retorna uma
saída, enquanto o metodo2 não necessita de entradas e não retorna nenhum
valor quando executado.
Atributes:
Escrever quais são os atributos
"""
def __ini__(self,arg1, arg2…): #método inicial objeto
ações #ações iniciais
def método1(self,arg10,arg20…): #método 1 definido usuário
ações 2 #ações 2 para alterar estados
return variáveis #retorna as variáveis
def método2(self): #método 2 definido usuário
ações 3 #ações 3 para alterar estado
class Caminhao(object):
"""Esta classe cria um caminhao genérico
Args:
identidade : fala quem é o caminhao
marca : mostra o fabricante
cor : mostra a cor atual
pneus : indica o número de pneus atual
portas : indica o número de portas atual
Attributes:
df: disponibilidade física do caminhão
mtbf: tempo médio entre falhas
mttr: tempo médio para reparo
"""
def __init__(self,identidade,marca,cor,pneus,portas):
""" Este é o método inicial para criação do objeto
Args:
Nenhum
Returns:
Nenhum
"""
self.id = identidade #inicializa a identidade
self.marca = marca #inicializa a marca
self.cor = cor #inicializa a cor
self.pneus = pneus #inicializa o num de pneus
self.portas = portas #inicializa o num de portas
self.df=0 #inicializa a df
self.mttr=0 #inicializa o mttr
self.mtbf=0 #inicializa o mtbf
def reseta_cor(self):
"""Este método reseta a cor do caminhão para a cor de
fábrica
Args:
Nenhum
Returns:
Nenhum
"""
self.cor = "Amarelo" #reinicia a cor como amarelo
def display(self):
"""Este método mostra todos os atributos do caminhão
Args:
Nenhum
Returns:
Nenhum
"""
def atualizar_indicadores(self,df,mttr,mtbf):
"""Este método atualiza os indicadores do caminhão
Args:
Nenhum
Returns:
Nenhum
"""
self.df = df #atualiza a df
self.mttr = mttr #atualiza o mttr
self.mtbf = mtbf #atualiza o mtbf
A inicialização do objeto e sua manipulação se dão como mostrados abaixo.
#inicializa o objeto
caminhao_1 = Caminhao("7001","Liebherr","Branco",4,3)
caminhao_1.display() #acessa o método para mostrar os
#atributos do objeto
#Neste momento a saída na tela seria "7001 Liebherr Branco 4 3"
caminhao_1.reseta_cor() #reseta a cor do caminhão
caminhao_1.display() #acessa o método display
#Agora, a saída na tela seria "7001 Liebherr Amarelo 4 3"
#atualiza indicadores através do método do caminhao
caminhao_1.atualizar_indicadores(85,12,200)
print(caminhão.df) #mostra na tela o valor atual da df
print(caminhão.mttr) #mostra na tela o valor atual do mttr
print(caminhão.mtbf) #mostra na tela o valor atual do mtbf
#A saída na tela seria 85, 12, 200
Arquivos de texto
A primeira forma é a importação de dados vindos de arquivos de texto,
geralmente no formato “.csv”. Para ler esses dados será necessário importar um
módulo: pandas. A estrutura para ler esses dados é dada da seguinte forma:
importa-se o módulo pandas com o nome “pd” (para facilitar seu manuseio no
código). Após isso, cria-se uma lista para receber o conteúdo desse arquivo e se
utiliza a função ler o arquivo, como pode ser visto abaixo.
Uma vez importados os dados, agora se deve trabalhar com a variável “dados”.
Matrizes ou “Arrays”
Quando se deseja trabalhar com uma matriz de dados homogêneos, deve-se
utilizar o módulo numpy. Com este módulo, consegue-se manipular os dados
dentro do vetor ou da matriz da mesma forma que aprendido em álgebra linear.
Para isso, deve-se primeiro importar os módulos e os dados. Após a importação
dos dados transforma-se os dados obtidos em uma matriz homogênea. O
exemplo abaixo mostra a importação dos dados ia transformação em matriz
armazenando os dados em uma matriz T. com essa matriz podemos acessar um
elemento através do uso dos colchetes. também conseguimos realizar
operações matemáticas como adição, subtração, multiplicação, divisão e
exponenciação.
Com essa mesma matriz, podemos saber qual o tipo dos dados inseridos na
matriz, podemos saber qual o seu formato e também podemos acessar uma
parte (seção) dessa matriz. Deve-se tomar cuidado ao acessar uma seção da
matriz, pois por padrão do Python, essa seção altera a matriz original. Para evitar
isso, deve-se fazer uma cópia da seção da matriz. Uma outra forma de acessar
seções da matriz é realizando lógicas booleanas. Isso serve para retirar apenas
valores específicos. Por fim, pode-se também organizar os valores da matriz
utilizando o método “.sort()”. Abaixo pode-se ver um exemplo de código para
manipular os dados da matriz.
Séries de dados
Uma série de dados é um vetor de dados com um índice. Para utilizar essa série
deve se importar o módulo pandas. Com uma série de dados, consegue-se
manipular dados de forma semelhante às matrizes. A maior diferença é que uma
série só possui uma coluna, diferentemente das matrizes. É como se trabalhasse
uma coluna e linhas do Excel onde cada linha é única. Com a série de dados,
pode-se retirar valores nulos, identificar valores não nulos e atualizar a série de
forma que fique no melhor formato que se esteja procurando.
Com o módulo pandas se pode transformar qualquer vetor em uma série de
dados. Pode-se também realizar operações matemáticas entre séries de dados
e alterar seus índices facilmente. Abaixo segue um exemplo da criação de
objetos transformados em séries de dados e manipulações dessas séries. Um
tipo de variável dicionário é considerada como a série de dados desde que se
tenha apenas um valor para cada índice.
#1° Passo - Importação dos módulos
import pandas as pd
#2° Passo - Obtenção dos dados
#criação do objeto que vira série de dados
obj1 = pd.Series([4,-6,7,8], index=['d','f','e','r'])
#criação do segundo objeto que vira série de dados a partir de um
#dictionary
obj2 = {'Recife':2000000, 'São Paulo':20000000, 'Maceió':1000000,
'Rio de Janeiro':12000000}
obj2 = pd.Series(obj2) #transformando em série de dados
obj2['Recife'] #acessando o índice Recife
obj2[2] #acessando o índice 2
obj1[obj1>2] #acessando as linhas onde os
#valores são maiores que 2
obj2[obj2<=2000000] #acessando as linhas onde os
#valores são menores ou iguais
#a 2000000
#criando uma lista de cidades
cidades = ['Recife','São Paulo', 'Maceió', 'Fortaleza']
#criando um novo objeto que recebe a lista de cidades como índices
#o detalhe está que só irá importar os dados dos valores que são
#comuns à lista e ao obj2. O que não tiver em obj2 será preenchido
#com “NaN”, ou Not a Number.
obj3 = pd.Series(obj2,index=cidades)
obj3.isnull() #retornar onde os valores são nulos
pd.notnull(obj3) #retornar onde os valores não nulos
obj3.notnull() #retornar onde os valores não nulos
obj21 = pd.Series(obj2) #transformando em serie de dados
obj3['Fortaleza']=23 #alterando o valor da coluna
obj4 = obj21 + obj3 #somando 2 frames e armazenando em
#outro
obj4.index.name = "Cidades" #inserindo o nome da coluna de índices
obj4.name = "População" #dando nome ao frame de dados obj4
#alterando os nomes dos índices de obj4
obj4.index=['Recife2','São Paulo', 'Maceió', 'Fortaleza', 'Rio de
Janeiro']
obj4.index[0] = 'Recife3' #alterando um índice em específico
Dados_disp.csv 9;17
Custos (kR$);Temperatura (°C) 11;17
10;22 12;17
12.5;13 10.5;17
13;12 13;16
7;21 7.5;12
11;14 8.5;13
7;13 9.5;15
8;15 11.5;15
Agora, serão mostrados os códigos para a criação dos seguintes gráficos: linha,
colunas, barras, histograma, dispersão e pareto.
Para o gráfico de linhas tem-se o seguinte código, baseado nos 5 Blocos. O
resultado é mostrado na Figura 5.7.
Por último, tem-se o diagrama de pareto. Para gerá-lo, tem-se o código abaixo.
O resultado é mostrado na Figura 5.12.