xarray.Dataset html repr
HTML
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<div class='xr-dataset-warp'>
<div class='xr-dataset-header'>
<div class="xr-dataarray-cls">xarray.DataArray</div>
<div class="xr-dataarray-name">'temperature'</div>
<ul class="xr-dim-list"><li id="xr-dim-x" class='xr-dim'><span class='xr-has-index'>x</span>: 2</li>
<li id="xr-dim-y" class='xr-dim'><span class='xr-has-index'>y</span>: 2</li>
<li id="xr-dim-time" class='xr-dim'><span class='xr-has-index'>time</span>: 3</li></ul>
</div>
<pre>array([[[ 27.89678578, 20.13359051, 23.0015084 ],
[ 27.98906559, 23.33581218, 24.55098285]],
[[ 26.60545264, 29.74200647, 28.58265355],
[ 28.59777193, 21.21353835, 23.99028031]]])</pre>
<ul class="xr-dataset-sections">
<li>
<input id="xr-dataset-coords" type="checkbox" checked>
<label for="xr-dataset-coords">Coordinates:</label>
<ul id="xr-dataset-coord-list" class="xr-var-list">
<li>
<input id="xr-var-time" type="checkbox" disabled>
<label class='xr-has-index' for="xr-var-time">time</label>
<span class="xr-dims">(time)</span>
<span class="xr-dtype">datetime64[ns]</span>
<span class="xr-values">
<span>2014-09-06</span>
<span>2014-09-07</span>
<span>...</span>
</span>
</li>
<li>
<input id="xr-var-lon" type="checkbox">
<label for="xr-var-lon">lon</label>
<span class="xr-dims">(x, y)</span>
<span class="xr-dtype">float64</span>
<span class="xr-values">
<span>-99.83</span>
<span>-99.32</span>
<span>-99.79</span>
<span>-99.23</span>
</span>
<ul class="xr-attr-list">
<li>standard_name : longitude</li>
</ul>
</li>
<li>
<input id="xr-var-lat" type="checkbox">
<label for="xr-var-lat">lat</label>
...
CSS
body {
/* jupyterlab settings */
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 1.5;
background-color: #fff;
}
.xr-dataset-warp {
/*font-family: monospace;*/
width: 540px;
}
.xr-dataset-header {
padding: 6px 0 6px 0;
border-bottom: solid 1px #777;
color: #555;
}
.xr-dataset-header div,
.xr-dataset-header ul {
display: inline;
margin-top: 0;
margin-bottom: 0;
}
.xr-dataarray-cls,
.xr-dataarray-name {
margin-right: 10px;
}
.xr-dataarray-name {
color: #000;
}
.xr-dataset-warp pre {
font-size: 12px;
background-color: #fcfcfc;
padding: 4px 0 4px 20px;
margin: 4px 0 0 0;
}
.xr-dataset-sections {
list-style: none;
padding: 3px;
margin: 0;
}
.xr-dataset-sections li input + label {
display: inline-block;
}
.xr-dataset-sections li input:enabled + label {
cursor: pointer;
}
.xr-dataset-sections li input[type="checkbox"] {
display: none;
}
.xr-dataset-sections li input ~ ul {
display: none;
}
.xr-dataset-sections li input:checked ~ ul {
display: block;
}
.xr-dataset-sections > li > input + label {
width: 140px;
color: #555;
font-weight: 500;
padding: 4px 0 2px 0;
}
.xr-dataset-sections > li > input + label:before {
display: inline-block;
content: '►';
font-size: 11px;
width: 15px;
}
.xr-dataset-sections > li > input:disabled + label:before {
color: #777;
}
.xr-dataset-sections > li > input:checked + label:before {
content: '▼';
}
.xr-dim-list {
display: inline-block !important;
list-style: none;
padding: 0;
color: #000;
}
.xr-dim-list li {
display: inline-block;
padding: 0;
margin: 0;
}
.xr-dim-list:before {
content: '(';
}
.xr-dim-list:after {
content: ')';
}
.xr-dim-list li:not(:last-child):after {
content: ',';
}
.xr-has-index {
text-decoration: underline;
}
.xr-var-list {
list-style: none;
padding: 0;
margin: 0;
}
.xr-var-list > li {
background-color: #fcfcfc;
overflow: hidden;
}
.xr-var-list >...
JavaScript
$(document).ready(function() {
$(".xr-dim").hover(
function() { // mouse goes over:
var dim = $(this).find('span').text();
$(this).toggleClass("xr-dim-highlight", true);
$(".xr-var-list > li").each(function() {
var dim_list = $(this).find('span.xr-dims').text();
if (~dim_list.indexOf(dim)) {
$(this).find('label').toggleClass("xr-dim-highlight", true);
};
});
},
function() { // mouse goes out
dim = $(this).find('span').text();
$(this).toggleClass("xr-dim-highlight", false);
$(".xr-var-list > li").each(function() {
$(this).find('label').toggleClass("xr-dim-highlight", false);
});
}
);
});