Plot retângulo usando coordenadas no Excel

2

Eu quero plotar um retângulo usando gráficos do Excel com ajuda de apenas 2 coordenadas, canto inferior esquerdo e superior direito. Existe uma maneira que eu posso definir usar o Microsoft Office 365 Pro mais a versão do Excel.

Porexemplo:

Element_nameX_lowY_lowX_highY_highCM124_BK124441664CM124_BK8441664

AquiestáminhatentativausandotreemapdasopçõesdoGráficodoExcel;Nãoémuitaajuda.

    
por JigarGandhi 05.06.2017 / 12:02

2 respostas

2

Eu não acho que você pode fazê-lo no Excel nativo, mas se você estiver disposto a usar um add-in, é possível. O add-in Funfun permite que você crie este tipo de gráfico usando Javascript no Excel.

Aqui está um código de trabalho que escrevi para você:

link

Eu usei o formato que você queria, eu apenas alterei os dados para criar dois retângulos diferentes, ambos com apenas duas coordenadas.

Como você pode ver neste link, usei um editor on-line do Funfun no qual inseri sua tabela na planilha incorporada.

Eu uso um arquivo JSON para obter os dados da planilha para o meu código javascript:

{
    "data": "=A1:E3"
}

Eu, então, armazeno os dados em variáveis locais e crio meus retângulos com as coordenadas corretas, como:

/* we store the data from the spreadsheet in local variables */
var label = [];
var x = [];
var y = [];

for (var i = 1; i < $internal.data.length; i++)
{
  label.push($internal.data[i][0]);
  x.push([parseInt($internal.data[i][1]), parseInt($internal.data[i][3])]);
  y.push([parseInt($internal.data[i][2]), parseInt($internal.data[i][4])]);  
}

/* create all the shapes you want with the data stored */
var shapes = [];
var traces = [];
for (var i = 0; i < $internal.data.length - 1; i++) {
  shapes.push({
    type: 'rectangle',
      xref: 'x',
      yref: 'y',
      fillcolor: 'rgba(50, 171, 96, 0.7)',
      x0: x[i][0],
      y0: y[i][0],
      x1: x[i][1],
      y1: y[i][1],
      line: {
        color: 'rgba(50, 171, 96, 1)'
      }
  });
  traces.push({
    x: [x[i][0] + 3.5],
    y: [y[i][0] - 2],
    text: label[i],
    mode: 'text'
  });
}

a matriz shapes é para os retângulos e a trace para rotular cada retângulo.

Você pode personalizar seu gráfico como quiser, pois há muitas opções disponíveis, essa é a beleza do javascript e suas poderosas bibliotecas. Para este exemplo, usei plotly.js

Você pode carregá-lo no Excel colando o URL no suplemento do Funfun Excel . Aqui está como se parece com o meu exemplo:

Editar

Sevocêquiserescrevertextodentrodasformas,bastaprecisardeoutrasvariáveislocaiscomosvaloresarmazenadoseencontrarascoordenadascorretascomo:

vartextInRectangles=["First", "second"];

...

 traces.push({
    x: [x[i][0] + 2.5],
    y: [y[i][0] + 4],
    text: textInRectangles[i],
    textfont: {
    color: 'black',
    size: 9,
    family: 'Arial'
  },
    mode: 'text'
  });

Eu mudei o link do exemplo à frente.

Divulgação: sou um desenvolvedor do Funfun.

    
por 25.01.2018 / 16:02
1

Você pode fazer isso com um gráfico de dispersão, mas precisa inserir as coordenadas de todos os cantos:

    
por 21.06.2017 / 08:37