左下と右上の2つの座標のみを使用して、Excelグラフを使用して長方形をプロットしたいと思います。 Microsoft Office 365ProとExcelのバージョンを使用して定義できる方法はありますか。
例えば:
Element_name X_low Y_low X_high Y_high
CM124_BK124 4 4 16 64
CM124_BK8 4 4 16 64
ネイティブExcelでそれを行うことはできないと思いますが、アドインを使用する場合は可能です。 Funfunアドインを使用すると、ExcelでJavascriptを使用してこの種のグラフを作成できます。
これが私があなたのために書いた実用的なコードです:
https://www.funfun.io/1/#/edit/5a69ddc9ee0b8c3283c653e
必要な形式を使用しました。データを変更して、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の開発者です。