Skip to content

Commit 43149b3

Browse files
committed
Add ggtb(), update demos and future_changes.md
1 parent 3dd7620 commit 43149b3

File tree

15 files changed

+1541
-297
lines changed

15 files changed

+1541
-297
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2021. JetBrains s.r.o.
3+
* Use of this source code is governed by the MIT license that can be found in the LICENSE file.
4+
*/
5+
6+
package frontendContextDemo.scripts
7+
8+
import frontendContextDemo.ScriptInBrowserContext
9+
import org.jetbrains.letsPlot.geom.geomPoint
10+
import org.jetbrains.letsPlot.ggplot
11+
import org.jetbrains.letsPlot.interact.ggtb
12+
13+
object PanZoom {
14+
@JvmStatic
15+
@Suppress("DuplicatedCode")
16+
fun main(args: Array<String>) {
17+
ScriptInBrowserContext.eval("'geom_bar()' == 'stat_count'") {
18+
val xs = List(100) { i -> -2.0 * Math.PI + (4.0 * Math.PI * i / 99) }
19+
val data = mapOf<String, Any>(
20+
"x" to xs,
21+
"y" to xs.map { Math.sin(it) }
22+
)
23+
val p = ggplot(data) + ggtb() +
24+
geomPoint {
25+
x = "x"
26+
y = "y"
27+
}
28+
p.show()
29+
}
30+
}
31+
}

devdocs/JUPYTER_KOTLIN_KERNEL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ a) After installing via `$ pip install`:
2727
b) After installing from local sources via `$ ./gradlew install`:
2828
> ~/.jupyter_kotlin/cache/libraries/
2929
30-
**Note:** If the `%useLatestDescriptors` **_line magic_** is included in Jupyter notebook,
31-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then Kotlin kernel will pull the latest repository version of descriptors and
32-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store them in this location:
33-
30+
> [!NOTE]
31+
> If the `%useLatestDescriptors` **_line magic_** is included in Jupyter notebook,
32+
> Kotlin kernel will pull the latest repository version of descriptors and store them in this location:
33+
>
3434
> ~/.jupyter_kotlin/cache/
3535
3636

docs/examples/jupyter-notebooks/f-4.9.0/check_overlap.ipynb

Lines changed: 51 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,45 @@
1616
"id": "9767fc73-54c9-49bc-ab50-10c9c9b89f54",
1717
"metadata": {},
1818
"outputs": [
19+
{
20+
"data": {
21+
"text/html": [
22+
" <div id=\"wAOgMJ\"></div>\n",
23+
" <script type=\"text/javascript\" data-lets-plot-script=\"library\">\n",
24+
" if(!window.letsPlotCallQueue) {\n",
25+
" window.letsPlotCallQueue = [];\n",
26+
" }; \n",
27+
" window.letsPlotCall = function(f) {\n",
28+
" window.letsPlotCallQueue.push(f);\n",
29+
" };\n",
30+
" (function() {\n",
31+
" var script = document.createElement(\"script\");\n",
32+
" script.type = \"text/javascript\";\n",
33+
" script.src = \"https://cdn.jsdelivr.net/gh/JetBrains/lets-plot@v4.5.1/js-package/distr/lets-plot.min.js\";\n",
34+
" script.onload = function() {\n",
35+
" window.letsPlotCall = function(f) {f();};\n",
36+
" window.letsPlotCallQueue.forEach(function(f) {f();});\n",
37+
" window.letsPlotCallQueue = [];\n",
38+
" \n",
39+
" \n",
40+
" };\n",
41+
" script.onerror = function(event) {\n",
42+
" window.letsPlotCall = function(f) {};\n",
43+
" window.letsPlotCallQueue = [];\n",
44+
" var div = document.createElement(\"div\");\n",
45+
" div.style.color = 'darkred';\n",
46+
" div.textContent = 'Error loading Lets-Plot JS';\n",
47+
" document.getElementById(\"wAOgMJ\").appendChild(div);\n",
48+
" };\n",
49+
" var e = document.getElementById(\"wAOgMJ\");\n",
50+
" e.appendChild(script);\n",
51+
" })();\n",
52+
" </script>"
53+
]
54+
},
55+
"metadata": {},
56+
"output_type": "display_data"
57+
},
1958
{
2059
"data": {
2160
"text/html": [
@@ -223,45 +262,6 @@
223262
},
224263
"metadata": {},
225264
"output_type": "display_data"
226-
},
227-
{
228-
"data": {
229-
"text/html": [
230-
" <div id=\"cdaC4J\"></div>\n",
231-
" <script type=\"text/javascript\" data-lets-plot-script=\"library\">\n",
232-
" if(!window.letsPlotCallQueue) {\n",
233-
" window.letsPlotCallQueue = [];\n",
234-
" }; \n",
235-
" window.letsPlotCall = function(f) {\n",
236-
" window.letsPlotCallQueue.push(f);\n",
237-
" };\n",
238-
" (function() {\n",
239-
" var script = document.createElement(\"script\");\n",
240-
" script.type = \"text/javascript\";\n",
241-
" script.src = \"https://cdn.jsdelivr.net/gh/JetBrains/lets-plot@v4.5.1/js-package/distr/lets-plot.min.js\";\n",
242-
" script.onload = function() {\n",
243-
" window.letsPlotCall = function(f) {f();};\n",
244-
" window.letsPlotCallQueue.forEach(function(f) {f();});\n",
245-
" window.letsPlotCallQueue = [];\n",
246-
" \n",
247-
" \n",
248-
" };\n",
249-
" script.onerror = function(event) {\n",
250-
" window.letsPlotCall = function(f) {};\n",
251-
" window.letsPlotCallQueue = [];\n",
252-
" var div = document.createElement(\"div\");\n",
253-
" div.style.color = 'darkred';\n",
254-
" div.textContent = 'Error loading Lets-Plot JS';\n",
255-
" document.getElementById(\"cdaC4J\").appendChild(div);\n",
256-
" };\n",
257-
" var e = document.getElementById(\"cdaC4J\");\n",
258-
" e.appendChild(script);\n",
259-
" })();\n",
260-
" </script>"
261-
]
262-
},
263-
"metadata": {},
264-
"output_type": "display_data"
265265
}
266266
],
267267
"source": [
@@ -610,17 +610,17 @@
610610
" </style>\n",
611611
" </head>\n",
612612
" <body>\n",
613-
" <table class=\"dataframe\" id=\"df_1090519040\"></table>\n",
613+
" <table class=\"dataframe\" id=\"df_-117440512\"></table>\n",
614614
"\n",
615615
"<p class=\"dataframe_description\">DataFrame: rowsCount = 3, columnsCount = 12</p>\n",
616-
"<table class=\"dataframe\" id=\"static_df_1090519041\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">untitled</th><th class=\"bottomBorder\" style=\"text-align:left\">manufacturer</th><th class=\"bottomBorder\" style=\"text-align:left\">model</th><th class=\"bottomBorder\" style=\"text-align:left\">displ</th><th class=\"bottomBorder\" style=\"text-align:left\">year</th><th class=\"bottomBorder\" style=\"text-align:left\">cyl</th><th class=\"bottomBorder\" style=\"text-align:left\">trans</th><th class=\"bottomBorder\" style=\"text-align:left\">drv</th><th class=\"bottomBorder\" style=\"text-align:left\">cty</th><th class=\"bottomBorder\" style=\"text-align:left\">hwy</th><th class=\"bottomBorder\" style=\"text-align:left\">fl</th><th class=\"bottomBorder\" style=\"text-align:left\">class</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">audi</td><td style=\"vertical-align:top\">a4</td><td style=\"vertical-align:top\">1,800000</td><td style=\"vertical-align:top\">1999</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">auto(l5)</td><td style=\"vertical-align:top\">f</td><td style=\"vertical-align:top\">18</td><td style=\"vertical-align:top\">29</td><td style=\"vertical-align:top\">p</td><td style=\"vertical-align:top\">compact</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">audi</td><td style=\"vertical-align:top\">a4</td><td style=\"vertical-align:top\">1,800000</td><td style=\"vertical-align:top\">1999</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">manual(m5)</td><td style=\"vertical-align:top\">f</td><td style=\"vertical-align:top\">21</td><td style=\"vertical-align:top\">29</td><td style=\"vertical-align:top\">p</td><td style=\"vertical-align:top\">compact</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">audi</td><td style=\"vertical-align:top\">a4</td><td style=\"vertical-align:top\">2,000000</td><td style=\"vertical-align:top\">2008</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">manual(m6)</td><td style=\"vertical-align:top\">f</td><td style=\"vertical-align:top\">20</td><td style=\"vertical-align:top\">31</td><td style=\"vertical-align:top\">p</td><td style=\"vertical-align:top\">compact</td></tr></tbody></table>\n",
616+
"<table class=\"dataframe\" id=\"static_df_-117440511\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">untitled</th><th class=\"bottomBorder\" style=\"text-align:left\">manufacturer</th><th class=\"bottomBorder\" style=\"text-align:left\">model</th><th class=\"bottomBorder\" style=\"text-align:left\">displ</th><th class=\"bottomBorder\" style=\"text-align:left\">year</th><th class=\"bottomBorder\" style=\"text-align:left\">cyl</th><th class=\"bottomBorder\" style=\"text-align:left\">trans</th><th class=\"bottomBorder\" style=\"text-align:left\">drv</th><th class=\"bottomBorder\" style=\"text-align:left\">cty</th><th class=\"bottomBorder\" style=\"text-align:left\">hwy</th><th class=\"bottomBorder\" style=\"text-align:left\">fl</th><th class=\"bottomBorder\" style=\"text-align:left\">class</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">audi</td><td style=\"vertical-align:top\">a4</td><td style=\"vertical-align:top\">1.800000</td><td style=\"vertical-align:top\">1999</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">auto(l5)</td><td style=\"vertical-align:top\">f</td><td style=\"vertical-align:top\">18</td><td style=\"vertical-align:top\">29</td><td style=\"vertical-align:top\">p</td><td style=\"vertical-align:top\">compact</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">audi</td><td style=\"vertical-align:top\">a4</td><td style=\"vertical-align:top\">1.800000</td><td style=\"vertical-align:top\">1999</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">manual(m5)</td><td style=\"vertical-align:top\">f</td><td style=\"vertical-align:top\">21</td><td style=\"vertical-align:top\">29</td><td style=\"vertical-align:top\">p</td><td style=\"vertical-align:top\">compact</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">audi</td><td style=\"vertical-align:top\">a4</td><td style=\"vertical-align:top\">2.000000</td><td style=\"vertical-align:top\">2008</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">manual(m6)</td><td style=\"vertical-align:top\">f</td><td style=\"vertical-align:top\">20</td><td style=\"vertical-align:top\">31</td><td style=\"vertical-align:top\">p</td><td style=\"vertical-align:top\">compact</td></tr></tbody></table>\n",
617617
" </body>\n",
618618
" <script>\n",
619619
" /*<!--*/\n",
620620
"call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: \"<span title=\\\"untitled: Int\\\">untitled</span>\", children: [], rightAlign: true, values: [\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">1</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">2</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">3</span></span>\"] }, \n",
621621
"{ name: \"<span title=\\\"manufacturer: String\\\">manufacturer</span>\", children: [], rightAlign: false, values: [\"audi\",\"audi\",\"audi\"] }, \n",
622622
"{ name: \"<span title=\\\"model: String\\\">model</span>\", children: [], rightAlign: false, values: [\"a4\",\"a4\",\"a4\"] }, \n",
623-
"{ name: \"<span title=\\\"displ: Double\\\">displ</span>\", children: [], rightAlign: true, values: [\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">1,8</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">1,8</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">2,0</span></span>\"] }, \n",
623+
"{ name: \"<span title=\\\"displ: Double\\\">displ</span>\", children: [], rightAlign: true, values: [\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">1.8</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">1.8</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">2.0</span></span>\"] }, \n",
624624
"{ name: \"<span title=\\\"year: Int\\\">year</span>\", children: [], rightAlign: true, values: [\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">1999</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">1999</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">2008</span></span>\"] }, \n",
625625
"{ name: \"<span title=\\\"cyl: Int\\\">cyl</span>\", children: [], rightAlign: true, values: [\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">4</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">4</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">4</span></span>\"] }, \n",
626626
"{ name: \"<span title=\\\"trans: String\\\">trans</span>\", children: [], rightAlign: false, values: [\"auto(l5)\",\"manual(m5)\",\"manual(m6)\"] }, \n",
@@ -629,12 +629,12 @@
629629
"{ name: \"<span title=\\\"hwy: Int\\\">hwy</span>\", children: [], rightAlign: true, values: [\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">29</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">29</span></span>\",\"<span class=\\\"formatted\\\" title=\\\"\\\"><span class=\\\"numbers\\\">31</span></span>\"] }, \n",
630630
"{ name: \"<span title=\\\"fl: String\\\">fl</span>\", children: [], rightAlign: false, values: [\"p\",\"p\",\"p\"] }, \n",
631631
"{ name: \"<span title=\\\"class: String\\\">class</span>\", children: [], rightAlign: false, values: [\"compact\",\"compact\",\"compact\"] }, \n",
632-
"], id: 1090519040, rootId: 1090519040, totalRows: 3 } ) });\n",
632+
"], id: -117440512, rootId: -117440512, totalRows: 3 } ) });\n",
633633
"/*-->*/\n",
634634
"\n",
635-
"call_DataFrame(function() { DataFrame.renderTable(1090519040) });\n",
635+
"call_DataFrame(function() { DataFrame.renderTable(-117440512) });\n",
636636
"\n",
637-
"document.getElementById(\"static_df_1090519041\").style.display = \"none\";\n",
637+
"document.getElementById(\"static_df_-117440511\").style.display = \"none\";\n",
638638
" </script>\n",
639639
" </html>"
640640
]
@@ -679,13 +679,13 @@
679679
{
680680
"data": {
681681
"text/html": [
682-
" <div id=\"S7gSlb\"></div>\n",
682+
" <div id=\"javN3n\"></div>\n",
683683
" <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
684684
" \n",
685685
" (function() {\n",
686686
" // ----------\n",
687687
" \n",
688-
" var containerDiv = document.getElementById(\"S7gSlb\");\n",
688+
" var containerDiv = document.getElementById(\"javN3n\");\n",
689689
" var observer = new ResizeObserver(function(entries) {\n",
690690
" for (let entry of entries) {\n",
691691
" var width = containerDiv.clientWidth\n",
@@ -834,13 +834,13 @@
834834
{
835835
"data": {
836836
"text/html": [
837-
" <div id=\"iB9WVz\"></div>\n",
837+
" <div id=\"Fy0QIw\"></div>\n",
838838
" <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
839839
" \n",
840840
" (function() {\n",
841841
" // ----------\n",
842842
" \n",
843-
" var containerDiv = document.getElementById(\"iB9WVz\");\n",
843+
" var containerDiv = document.getElementById(\"Fy0QIw\");\n",
844844
" var observer = new ResizeObserver(function(entries) {\n",
845845
" for (let entry of entries) {\n",
846846
" var width = containerDiv.clientWidth\n",
@@ -988,13 +988,13 @@
988988
{
989989
"data": {
990990
"text/html": [
991-
" <div id=\"kDqmFJ\"></div>\n",
991+
" <div id=\"ku3ArE\"></div>\n",
992992
" <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
993993
" \n",
994994
" (function() {\n",
995995
" // ----------\n",
996996
" \n",
997-
" var containerDiv = document.getElementById(\"kDqmFJ\");\n",
997+
" var containerDiv = document.getElementById(\"ku3ArE\");\n",
998998
" var observer = new ResizeObserver(function(entries) {\n",
999999
" for (let entry of entries) {\n",
10001000
" var width = containerDiv.clientWidth\n",
@@ -1125,14 +1125,6 @@
11251125
" fill = \"class\"\n",
11261126
"} "
11271127
]
1128-
},
1129-
{
1130-
"cell_type": "code",
1131-
"execution_count": null,
1132-
"id": "5c9870d1-afb4-4c36-a848-2da5ebc72c6d",
1133-
"metadata": {},
1134-
"outputs": [],
1135-
"source": []
11361128
}
11371129
],
11381130
"metadata": {

0 commit comments

Comments
 (0)