2
respostas

[Projeto] Desafio gráficos com legenda

Meu projeto do gráfico de barras com o desafio de implementar as legendas mostrando o que cada cor representa :)

let tela = document.querySelector('canvas')
let ctx = tela.getContext('2d')

let serie2015 = [50, 25, 20, 5]
let serie2016 = [65, 20, 13, 2]
let cores = ['blue', 'green', 'yellow', 'red']
let navegadores = ['Google Chrome', 'Firefox', 'Safari', 'Outros']

function desenhaTexto(texto, x, y) {
  ctx.font = '15px Georgia'
  ctx.fillStyle = 'black'
  ctx.fillText(texto, x, y) 
}

function desenhaRetangulo(x, y, largura, altura, cor) {
  ctx.fillStyle = cor
  ctx.fillRect(x, y, largura, altura)
  ctx.strokeStyle = 'black'
  ctx.strokeRect(x, y, largura, altura)
}

function desenhaBarra(x, y, serie, cores, texto) {
  desenhaTexto(texto, x, y - 15)

  let somaY = y

  for (let i = 0; i < serie.length; i++) {
    desenhaRetangulo(x, somaY, 50, serie[i], cores[i])
    somaY += serie[i]
  }
} 

function desenhaLegenda(x, y, navegadores, cores) {  
  let larguraQuadradoLegenda = 10
  let alturaQuadradoLegenda = 10

  let margemLegendaEsquerda = 20 
  let legendaY = y

  for (let i = 0; i < navegadores.length; i++) {
    desenhaRetangulo(x, legendaY, larguraQuadradoLegenda, alturaQuadradoLegenda, cores[i])
    desenhaTexto(navegadores[i], x + margemLegendaEsquerda, legendaY + alturaQuadradoLegenda)
    legendaY += 20
  }
}

desenhaBarra(50, 50, serie2015, cores, '2015')
desenhaBarra(150, 50, serie2016, cores, '2016')
desenhaLegenda(50, 200, navegadores, cores)

Resultado: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Nossa! Ficou incrível!! Parabéns

Ai você foi além, incrível...

Parabéns, pelo código.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software