Excelの座標を使用して四角形をプロットする


2

Excelチャートを使用して、左下と右上の2つの座標のみを使用して四角形をプロットしたい。Microsoft Office 365 ProプラスExcelバージョンの使用を定義する方法はありますか。

ここに画像の説明を入力してください


例えば:

Element_name   X_low    Y_low   X_high  Y_high
CM124_BK124    4       4        16      64
CM124_BK8      4       4        16      64

これは、treemapExcel Chartオプションから使用した私の試みです。あまり助けにはなりません。 ここに画像の説明を入力してください


これまでに何を研究し、試みましたか?
チャーリーRB

使用しようとしましたtreemap が、そのチャートは座標には適していません。
JigarGandhi

4つの座標すべてが必要です。散布図を使用することもできます。
マテジュハス

回答:


2

ネイティブのExcelではできないと思いますが、アドインを使用する場合は可能です。Funfunアドインを使用すると、ExcelでJavascriptを使用してこの種のグラフを作成できます。

ここに私があなたのために書いた実用的なコードがあります:

https://www.funfun.io/1/#/edit/5a69ddc9ee0b8c3283c653e0

必要な形式を使用しました。データを変更して、2つの座標のみを持つ2つの異なる長方形を作成しました。

このリンクでわかるように、埋め込みスプレッドシートにテーブルを入力したFunfunのオンラインエディターを使用しました。

JSONファイルを使用して、スプレッドシートからJavaScriptコードにデータを取得します。

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

次に、データをローカル変数に保存し、次のように正しい座標で四角形を作成します。

/* 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'
  });
}

shapes配列は、長方形のためのものであり、trace各長方形にラベルを付けることです。

あなたが好きなようにあなたのチャートをカスタマイズすることができます多くのオプションが利用可能です、それはjavascriptとその強力なライブラリの美しさです。この例では、plotly.jsを使用しました

Funfun Excelアドインに URLを貼り付けることで、Excelに読み込むことができます。これが私の例でどのように見えるかです:

最後の

編集

図形内にテキストを書きたい場合は、値が格納された別のローカル変数が必要で、正しい座標を見つけることができます:

var textInRectangles = ["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'
  });

編集する

例のリンクを先に変更しました。

開示:私はFunfunの開発者です。


1
これは素晴らしいように見えますが、作成されたこれらのボックス内に特定の値を書き込む必要もあります。
-JigarGandhi

1
私は答えを編集し、長方形の内側に書く方法を説明しました。私はそれがあなたの質問に答える期待し、そうでない場合は:)再びコメントすることを躊躇しないで
ニコラスdejean

1

散布図でそれを行うことができますが、すべてのコーナーの座標を入力する必要があります。

ここに画像の説明を入力してください


しかし、2つの座標のみを使用して複数のエントリをプロットしたいと思います。
-JigarGandhi

私はあなたがそれを望んでいることを理解しています、そしてExcelはあなたにとって正しいツールではないかもしれません。
マテユハス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.