Commit 131dc847 authored by mc16's avatar mc16

Graficos na mesma pagina html, média e desvio padrão

parent 9dc70d77
var dataSet = [];
var localStoreLigado = false;
if (typeof(Storage) !== "undefined") {
localStoreLigado=true;
localStoreLigado=true;
if(localStorage.getItem("dataSet") != null){
dataSet = JSON.parse(localStorage.dataSet);
}
}
function salvaTestes(){
......@@ -24,7 +24,7 @@ var senha = null;
var dados = dataSet;
console.log(dados);
var objeto_ativo = null; //Objeto (HTML) ativo na gerencia de testes
var objeto_ativo = null; //Objeto (HTML) ativo na gerencia de testes
......@@ -33,7 +33,7 @@ Informa a interface do html:
"main" : interface de login ou de gráficos
"gerenciar" : interface de gerencia de testes (excluir, ver resultados)
*/
var paginaAtual = "main";
var paginaAtual = "main";
......@@ -61,7 +61,7 @@ function buscaTestes(){
//Função chamada para carregar a aba de gerencia de testes
function geraDadosGerenciar(){
if(paginaAtual == "gerenciar"){
document.getElementById("gerencia_testes").innerHTML="";
for(var i = 0; i < dados.length; i++){
document.getElementById("gerencia_testes").innerHTML+=
......@@ -82,9 +82,9 @@ function exclueTeste(index){
function desativa_objeto_ativo(){
if(!objeto_ativo)
return;
objeto_ativo.innerHTML = dados[1*objeto_ativo.getAttribute("id_teste")].nome;
objeto_ativo = null;
}
......@@ -103,60 +103,95 @@ function filtraOrdemBateria(array){
//Imprime na tela o conteúdo referente a aba de gerencia de testes
function abre_informacao_teste(obj){
mediaC=0;
mediaI=0;
if(objeto_ativo == obj){
desativa_objeto_ativo();
return;
}
obj.innerHTML = "<center>";
/* Percorre a estrutura de dados que é definida no script.js que contém todas as informações referentes a 1 teste*/
obj.innerHTML+= dados[1*obj.getAttribute("id_teste")].nome+"<br>";
obj.innerHTML+= dados[1*obj.getAttribute("id_teste")].idade+" anos<br>";
ordemFiltrada = filtraOrdemBateria(dados[1*obj.getAttribute("id_teste")].ordemBateria);
//Para cada resposta de cada teste
for(var i = 0; i < dados[1*obj.getAttribute("id_teste")].stringResposta.length; i++){
obj.innerHTML+="<br>"
if(ordemFiltrada[i] == "C")
obj.innerHTML+="Congruente";
if(ordemFiltrada[i] == "I")
obj.innerHTML+="Incongruente";
obj.innerHTML+="<br>"
for(var j = 0; j < dados[1*obj.getAttribute("id_teste")].stringResposta[i].length; j++){
/*Escreve na tela ( em forma de botões ) se a pessoa acertou, e o seu tempo, alterando a classe de cada uma para :
- spanAcertou
- spanErrou
*/
if(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].acertou == "1"){
obj.innerHTML += "<span class=spanAcertou>" + dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo+"</span><br>";
}
else{
obj.innerHTML += "<span class=spanErrou>" + dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo+"</span><br>";
}
}
obj.innerHTML += "<span class=spanErrou>" + dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo+"</span><br>";
}
if(ordemFiltrada[i] == "C")
{
mediaC = parseFloat(mediaC) + parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo);
}
else {
mediaI = parseFloat(mediaI) + parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo);
}
}
if(mediaI == 0)
{
obj.innerHTML += "<br>Média Congruente<br>";
mediaC = parseFloat(mediaC) / parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i].length);
obj.innerHTML += "<span class=spanAcertou>" + parseFloat(mediaC.toFixed(2))+"</span><br>";
}
else {
obj.innerHTML += "<br>Média Incongruente<br>";
mediaI = parseFloat(mediaI) / parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i].length);
obj.innerHTML += "<span class=spanAcertou>" + parseFloat(mediaI.toFixed(2))+"</span><br>";
}
desvioPadrao = 0;
for(var j = 0; j < dados[1*obj.getAttribute("id_teste")].stringResposta[i].length; j++){
if(mediaI == 0)
{
quadrado = (( parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo) ) - parseFloat(mediaC)) * (parseFloat( parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo) - parseFloat(mediaC)));
desvioPadrao = parseFloat(desvioPadrao) + quadrado;
}
else {
desvioPadrao = parseFloat(desvioPadrao) + ( (parseFloat( parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo)) - parseFloat(mediaI)) * (parseFloat( parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i][j].tempo) ) - parseFloat(mediaI)) );
}
}
desvioPadrao = parseFloat(desvioPadrao) / parseFloat(dados[1*obj.getAttribute("id_teste")].stringResposta[i].length);
desvioPadrao = parseFloat(Math.sqrt(parseFloat(desvioPadrao)) );
obj.innerHTML += "<br>Desvio Padrão<br>";
obj.innerHTML += "<span class=spanAcertou>" + parseFloat(desvioPadrao.toFixed(2))+"</span><br>";
if(j < dados[1*obj.getAttribute("id_teste")].stringResposta[i].length-1)
obj.innerHTML +="<br>";
}
obj.innerHTML += "</center>";
objeto_ativo = obj;
}
/*Função que plota o gráfico de qualquer teste
/*Função que plota o gráfico de qualquer teste
parametros:
* indice = indice do teste que se deseja plotar (int)
......@@ -164,19 +199,19 @@ parametros:
Ex1 : Congruente 1
Ex2 : Incongruente 1
Obs: Se dados for nulo, não sera pplotado nenhum gráfico
Obs: Se dados for nulo, não sera pplotado nenhum gráfico
*/
function plotaGraficoX(indice,idHTML){
function plotaGraficoX(indice,idHTML, grafico){
var vetLinhas = [];
var j;
var auxVetY = [];
var auxVetX = [];
for(var i = 0; i < dados.length; i++){
for(var i = 0; i < dados.length; i++){
vetLinhas[vetLinhas.length] = {
x: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
y: buscaTempoResposta(dados[i].stringResposta[indice]),
x: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
y: buscaTempoResposta(dados[i].stringResposta[indice]),
type: 'scatter',
mode:'lines+markers',
name: dados[i].nome
......@@ -188,16 +223,16 @@ function plotaGraficoX(indice,idHTML){
}
}
vetLinhas[vetLinhas.length] = {
x: auxVetX,
y: auxVetY,
x: auxVetX,
y: auxVetY,
type: 'scatter',
mode:'markers',
marker:{color:'rgb(200,20,20)'},
name: dados[i].nome
};
}
document.getElementById("grafico").innerHTML+=idHTML+"<br><html><div id='"+idHTML+"'></div></html>"
document.getElementById(grafico).innerHTML+=idHTML+"<br><html><div id='"+idHTML+"'></div></html>"
Plotly.newPlot(idHTML, vetLinhas);
vetLinhas = [];
auxVetY = [];
......@@ -207,29 +242,28 @@ function plotaGraficoX(indice,idHTML){
//Percorre os testes do professor e os plota de acordo com a congruencia
function geraGraficos(){
document.getElementById("grafico").innerHTML = "";
if(dados){
if(!dados.length)
return;
var congruentes = 0;
var incongruentes = 0;
for( var i = 0; i< dados[0].ordemBateria.length; i++){
if(dados[0].ordemBateria[i] == "C"){
plotaGraficoX(congruentes+incongruentes,"Congruente "+(congruentes+1));
plotaGraficoX(congruentes+incongruentes,"Congruente "+(congruentes+1), "graficoC");
congruentes++;
}
if(dados[0].ordemBateria[i] == "I"){
plotaGraficoX(congruentes+incongruentes,"Incongruente "+(incongruentes+1));
plotaGraficoX(congruentes+incongruentes,"Incongruente "+(incongruentes+1), "graficoI");
incongruentes++;
}
}
}
}
......@@ -280,20 +314,20 @@ function downloadCsv(){
});
*/
for(var i in dataSet){
csvContent += dataSet[i].nome+" "+dataSet[i].idade+" anos,"
}
csvContent+="\n";
if(dataSet.length < 1){
alert("Não há nenhum teste registrado!");
return;
}
ordemFiltrada = filtraOrdemBateria(dataSet[0].ordemBateria);
lines = [];
for(var i = 0; i < ordemFiltrada.length+ordemFiltrada.length; i++){
for(var j in dataSet[0].stringResposta[0]){
lines.push("");
......@@ -302,7 +336,7 @@ function downloadCsv(){
for(var i in dataSet){
for(var j in dataSet[i].stringResposta){
j = parseInt(j);
if(ordemFiltrada[j]=="C"){
lineIndex = parseInt(j*dataSet[i].stringResposta[j].length)+j;
lines[lineIndex]+="Congruente,";
......@@ -317,13 +351,13 @@ function downloadCsv(){
lineIndex=parseInt(lineIndex)+1+parseInt(j);
lines[lineIndex] +=(dataSet[i].stringResposta[j][k].tempo+",");
}
}
}
csvContent += lines.join("\n");
var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
......
......@@ -14,7 +14,7 @@
<script>
</script>
<style>
......@@ -38,8 +38,8 @@
</style>
</head>
<body>
<!--*******************************************************************************************!-->
<div id="logado_main" style="display:none;">
<div class="header">
......@@ -61,8 +61,9 @@
<a class="pure-button pure-button-primary" href="index.html">Fazer teste</a>
<br><br>
</div>
<center id='grafico'></center>
<center id='graficoC'></center>
<center id='graficoI'></center>
</div>
<!--*******************************************************************************************!-->
......@@ -81,7 +82,7 @@
</div>
<div class="corpo">
<center id="gerencia_testes">
</center>
</div>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment