Files
mixly3-server/mixly/boards/default/python_skulpt/__init___6abeeadb.js
2026-01-24 16:13:38 +08:00

1 line
26 KiB
JavaScript

Sk.jsplotlib=Sk.jsplotlib||{};let $builtinmodule=function(t){let e={__name__:"matplotlib.pyplot"};const l=new Sk.builtin.str("color"),a=new Sk.builtin.str("colors"),r=new Sk.builtin.str("data"),i=new Sk.builtin.str("label"),n=new Sk.builtin.str("alpha"),s=new Sk.builtin.str("dash_capstyle"),o=new Sk.builtin.str("dash_joinstyle"),c=new Sk.builtin.str("fillstyle"),u=new Sk.builtin.str("linewidth"),p=new Sk.builtin.str("marker"),d=new Sk.builtin.str("linestyle"),y=new Sk.builtin.str("linestyles"),h=new Sk.builtin.str("bins"),g=new Sk.builtin.str("align"),k=new Sk.builtin.str("dot_limit"),b=new Sk.builtin.str("s"),x=new Sk.builtin.str("c"),f=new Sk.builtin.str("linewidths"),m=new Sk.builtin.str("edgecolors"),S=new Sk.builtin.str("width"),w=new Sk.builtin.str("tick_label"),F=new Sk.builtin.str("rotation"),A=.5;function _(){return Sk.MatPlotLibGraphics.width}function v(){return Sk.MatPlotLibGraphics.height}let E=0;function C(t,e,l,a){return{type:t,data:e,style:l,label:a}}function D(){let t={top:20,right:30,bottom:50,left:40},e=E++;return{plots:[],labels:{title:"","x-axis":"","y-axis":""},extents:{xMin:null,xMax:null,yMin:null,yMax:null},ticks:{x:{},y:{},xRotate:"horizontal",yRotate:"horizontal",xEstimate:new Set,yEstimate:new Set},margin:t,width:_()-t.left-t.right,height:_()-t.top-t.bottom,idNumber:e,id:"chart"+e,colorCycle:0}}function j(t,e,l,a){void 0===a&&(a=0),null===t.extents[e+"Min"]?t.extents[e+"Min"]=d3.min(l)-a:t.extents[e+"Min"]=Math.min(d3.min(l)-a,t.extents[e+"Min"]),null===t.extents[e+"Max"]?t.extents[e+"Max"]=d3.max(l)+a:t.extents[e+"Max"]=Math.max(d3.max(l)+a,t.extents[e+"Max"])}let B=null;function M(){return B||(B=D()),B}function z(){B=D()}function q(t,e,a,r,i){let y={alpha:N(a,n,null),dash_capstyle:N(a,s,"butt"),dash_joinstyle:N(a,o,"miter"),fillstyle:N(a,c,"full"),linewidth:N(a,u,1)};if(t){let e=Sk.jsplotlib._process_plot_format(t);y.linestyle=N(a,d,e.linestyle),y.marker=N(a,p,Sk.jsplotlib.parse_marker(e.marker)),y.color=N(a,l,Sk.jsplotlib.color_to_hex(e.color))}else{let t=Sk.jsplotlib.rc["axes.color_cycle"];y.linestyle=N(a,d,r),y.marker=N(a,p,i),y.color=N(a,l,Sk.jsplotlib.color_to_hex(t[e.colorCycle%t.length])),e.colorCycle+=1}return y}function T(t){return t.map(((t,e)=>e))}function L(t,e){if(null!==e){if(t.length>=2)throw new Sk.builtin.ValueError("Must provide at least 2 arguments when plotting with 'data' keyword");let l=t[0],a=t[1],r=[],i=[];const n=Sk.misceval.arrayFromIterable(e);for(let t=0;t<n.length;t++){if(!n[t].sq$contains(l))throw new Sk.builtin.ValueError(`Item at index ${t} is missing expected attribute.`);r.push(n[t].mp$subscript(l)),i.push(n[t].mp$subscript(a))}return[r,i,t[2]]}if(t.length>=3&&Sk.builtin.checkString(t[2]))return[[t[0],t[1],t[2]].map(Sk.ffi.remapToJs)].concat(L(t.slice(3),e));if(t.length>=2){let l=Sk.ffi.remapToJs(t[0]);if(Sk.builtin.checkString(t[1])){return[[T(l),l,Sk.ffi.remapToJs(t[1])]].concat(L(t.slice(2),e))}{let a=l;return l=Sk.ffi.remapToJs(t[1]),[[a,l,""]].concat(L(t.slice(2),e))}}if(t.length>=1){let l=Sk.ffi.remapToJs(t[0]);return[[T(l),l,""]].concat(L(t.slice(1),e))}return[]}function N(t,e,l){return t.sq$contains(e)?Sk.ffi.remapToJs(t.mp$subscript(e)):l}function V(t,e,l){e.forEach((e=>t.ticks.xEstimate.add(e))),l.forEach((e=>t.ticks.yEstimate.add(e)))}let J=function(t){Sk.builtin.pyCheckArgs("plot",arguments,1,1/0,!0,!1);let e=Array.prototype.slice.call(arguments,1),l=new Sk.builtins.dict(t),a=N(l,r,null),n=N(l,i,null),s=M(),o=L(e,a);for(let t=0;t<o.length;t+=1){let e=o[t],a=C("line",d3.zip(e[0],e[1]).map((t=>({x:t[0],y:t[1]}))),q(e[2],s,l,"-",""),n);s.plots.push(a),j(s,"x",e[0],A),j(s,"y",e[1],A),V(s,e[0],e[1])}};J.co_kwargs=!0,e.plot=new Sk.builtin.func(J);let I=function(t){Sk.builtin.pyCheckArgs("hist",arguments,1,1/0,!0,!1);let e=Array.prototype.slice.call(arguments,1),l=new Sk.builtins.dict(t),a=Sk.ffi.remapToJs(e[0]);a.length>0&&(Array.isArray(a[0])||(a=[a]));let r=N(l,i,null),n=M();for(let t=0;t<a.length;t+=1){let e=a[t],i=C("hist",e,q(null,n,l,"",""),r);i.bins=N(l,h,null),i.align=N(l,g,"mid");let s=e;if(Array.isArray(i.bins)){let t=d3.max(i.bins),l=d3.min(i.bins);i.data=e=i.data.map((e=>Math.max(Math.min(e,t),l))),s=i.bins}n.plots.push(i),j(n,"x",e,A),V(n,s,d3.range(e.length))}j(n,"y",[0])};I.co_kwargs=!0,e.hist=new Sk.builtin.func(I);let $=function(t){Sk.builtin.pyCheckArgs("scatter",arguments,1,1/0,!0,!1);let e=Array.prototype.slice.call(arguments,1),l=new Sk.builtins.dict(t),a=N(l,r,null),n=N(l,i,null),s=L(e,a),o=N(l,k,256);if(s[0]&&s[0].length>o){let t=[],e=[],l=s[0].length/o;for(let a=0;a<o;a+=1){let r=Math.floor((a+Math.random())*l);t.push(s[0][r]),e.push(s[1][r])}s[0]=t,s[1]=e}let c=M();for(let t=0;t<s.length;t+=1){let e=s[t],a=q(e[2],c,l," ","o"),r=C("scatter",d3.zip(e[0],e[1]).map((t=>({x:t[0],y:t[1]}))),a,n);r.sizes=N(l,b,null),r.colors=N(l,x,null),r.linewidths=N(l,f,1.5),r.edgecolors=N(l,m,"face"),c.plots.push(r),j(c,"x",e[0],A),j(c,"y",e[1],A),V(c,e[0],e[1])}};$.co_kwargs=!0,e.scatter=new Sk.builtin.func($);let R=function(t){Sk.builtin.pyCheckArgs("bar",arguments,1,1/0,!0,!1);let e=Array.prototype.slice.call(arguments,1),l=new Sk.builtins.dict(t),a=N(l,r,null),n=N(l,i,null),s=N(l,w,[]),o=L(e,a),c=M();for(let t=0;t<o.length;t+=1){let e=o[t],a=C("bar",d3.zip(e[0],e[1]).map((t=>({x:t[0],y:t[1]}))),q(null,c,l,"",""),n);a.width=N(l,S,.8),a.align=N(l,g,"center");for(let t=0;t<Math.min(s.length,e[0].length);t+=1)c.ticks.x[e[0][t]]=s[t];c.plots.push(a);let r=d3.min(e[0])-("center"===a.align?1:0),i=d3.max(e[0])+1;j(c,"x",e[0].concat([r,i])),j(c,"y",e[1]),V(c,e[0].concat([r,i]),e[1])}j(c,"y",[-.1])};R.co_kwargs=!0,e.bar=new Sk.builtin.func(R);let Y=function(t){Sk.builtin.pyCheckArgs("boxplot",arguments,1,1/0,!0,!1);let e=Array.prototype.slice.call(arguments,1),l=new Sk.builtins.dict(t),a=Sk.ffi.remapToJs(e[0]),r=N(l,i,null),n=M(),s=a.sort(d3.ascending),o=d3.quantile(s,.25),c=d3.quantile(s,.5),u=d3.quantile(s,.75),p=d3.min(a),d=d3.max(a),y={x:n.plots.length+1,y:[p,o,c,u,d]},h=C("boxplot",y,q(null,n,l,"",""),r);n.plots.push(h),j(n,"x",[y.x-1,y.x,y.x+1]),j(n,"y",y.y),j(n,"y",[-.1]),V(n,[y.x-1,y.x+1],y.y)};function G(t){t=t.slice(0,3).map(Sk.ffi.remapToJs);let e=d3.max(t.filter(Array.isArray).map((t=>t.length)))||1;return t=t.map((t=>Array.isArray(t)?t:Array(e).fill(t))),d3.zip(t[0],t[1],t[2])}Y.co_kwargs=!0,e.boxplot=new Sk.builtin.func(Y);let X=function(t){Sk.builtin.pyCheckArgs("hlines",arguments,1,1/0,!0,!1);let e=Array.prototype.slice.call(arguments,1),l=new Sk.builtins.dict(t),n=(N(l,r,null),N(l,i,null)),s=N(l,a,null),o=N(l,y,null),c=G(e),u=M(),p=q(null,u,l,"","");for(let t=0;t<c.length;t+=1){let e=c[t],l={x1:e[1],x2:e[2],y1:e[0],y2:e[0]},a=C("one_line",l,p,n);a.color=Array.isArray(s)?s[t]:a.color,a.linestyle=null===o?a.linestyle:o,u.plots.push(a),j(u,"x",[l.x1,l.x2]),j(u,"y",[l.y1,l.y2]),V(u,[l.x1,l.x2],[l.y1,l.y2])}};X.co_kwargs=!0,e.hlines=new Sk.builtin.func(X);let P=function(t){Sk.builtin.pyCheckArgs("vlines",arguments,1,1/0,!0,!1);let e=Array.prototype.slice.call(arguments,1),l=new Sk.builtins.dict(t),n=(N(l,r,null),N(l,i,null)),s=N(l,a,null),o=N(l,y,null),c=G(e),u=M(),p=q(null,u,l,"","");for(let t=0;t<c.length;t+=1){let e=c[t],l={x1:e[0],x2:e[0],y1:e[1],y2:e[2]},a=C("one_line",l,p,n);a.color=Array.isArray(s)?s[t]:a.color,a.linestyle=null===o?a.linestyle:o,u.plots.push(a),j(u,"x",[l.x1,l.x2]),j(u,"y",[l.y1,l.y2]),V(u,[l.x1,l.x2],[l.y1,l.y2])}};function U(t,e){let l=t.ticks[e+"Rotate"];switch(l){case"horizontal":return"rotate(0)";case"vertical":return"rotate(275)";default:return"rotate("+-l+")"}}function O(t,e){let l=Sk.MatPlotLibGraphics.target;t.svg=d3.select(l).append("div").append("svg"),t.svg.attr("class","chart"),t.svg.attr("width",_()),t.svg.attr("height",v()),t.svg.attr("chartCount",t.idNumber);let a="translate("+(t.margin.left+e)+","+t.margin.top+")";t.canvas=t.svg.append("g").attr("transform",a),t.canvas.append("g").attr("class","x axis").attr("transform","translate(0,"+t.height+")").call(t.xAxis),t.canvas.append("g").attr("class","y axis").call(t.yAxis);let r=t.canvas.select(".x.axis").selectAll("text").style("font-size","12px");"horizontal"!==t.ticks.xRotate&&r.style("text-anchor","end").attr("transform",U(t,"x"));let i=t.canvas.select(".y.axis").selectAll("text").style("font-size","12px");return"horizontal"!==t.ticks.yRotate&&i.attr("transform",U(t,"y")),a="translate("+(t.width-e)/2+" ,"+(t.height+t.margin.bottom-14)+")",t.canvas.append("text").attr("transform",a).attr("class","x-axis-label").style("font-size","14px").text(t.labels["x-axis"]).style("text-anchor","middle"),t.canvas.append("text").attr("transform","rotate(-90)").attr("class","y-axis-label").attr("y",0-t.margin.left-e).attr("x",0-t.height/2).attr("dy","1em").text(t.labels["y-axis"]).style("font-size","14px").style("text-anchor","middle"),t.canvas.append("text").attr("x",(t.width-e)/2).attr("y",0-t.margin.top/2).attr("class","title-text").text(t.labels.title).attr("text-anchor","middle").style("font-size","14px").style("text-decoration","underline"),t.canvas.append("text").attr("x",0).attr("y",0).text("BlockPy").style("stroke","#FDFDFD").style("font-size","8px"),t.svg.insert("defs",":first-child").append("style").attr("type","text/css").text("svg { background-color: white; }\n.axis path,.axis line { fill: none; stroke: black; shape-rendering: crispEdges;}\n.line { fill: none; stroke-width: 1px;}\n.circle { r: 3; shape-rendering: crispEdges; }\n.bar { shape-rendering: crispEdges;}\n"),t}function H(t){return t.toLocaleString().length}function W(t){return 0===Object.keys(t).length}function K(t){let e=d3.extent(t.data);Array.isArray(t.bins)&&(e[1]+=1,t.bins[t.bins.length-1]+=1);let l=d3.histogram().domain(e);t.bins&&(l=l.thresholds(t.bins));let a=l(t.data);return Array.isArray(t.bins)&&(a[a.length-1].x1-=1),a}P.co_kwargs=!0,e.vlines=new Sk.builtin.func(P);e.show=new Sk.builtin.func((function(){let t=M();if(0===t.plots.length)return;if(void 0===t.extents.xMin||void 0===t.extents.yMin)return;let e=5*Math.max(H(t.extents.xMin),H(t.extents.xMax),H(t.extents.yMin),H(t.extents.yMin));!function(t,e){t.xScale=d3.scaleLinear().domain([t.extents.xMin,t.extents.xMax]).range([0,t.width-e]),t.xAxis=d3.axisBottom().scale(t.xScale),t.ticks.xEstimate.size<10&&t.xAxis.ticks(t.ticks.xEstimate.size),W(t.ticks.x)||(t.xAxis=t.xAxis.ticks().tickFormat((function(e){return t.ticks.x[e]})))}(t,e),function(t){if(!t.plots.some((t=>"hist"===t.type)))return!1;let e=0;for(let l=0;l<t.plots.length;l+=1){let a=t.plots[l];if("hist"!==a.type)continue;let r=K(a);e=Math.max(e,d3.max(r,(t=>t.length)))}t.extents.yMax=Math.max(e,t.extents.yMax)}(t),function(t){t.yScale=d3.scaleLinear().domain([t.extents.yMin,t.extents.yMax]).range([t.height,0]),t.yAxis=d3.axisLeft().scale(t.yScale),t.ticks.yEstimate.size<10&&t.yAxis.ticks(t.ticks.yEstimate.size),W(t.ticks.y)||(t.yAxis=t.yAxis.ticks().tickFormat((function(e){return t.ticks.y[e]})))}(t),t.mapX=e=>t.xScale(e.x),t.mapY=e=>t.yScale(e.y),t.mapLine=d3.line().x(t.mapX).y(t.mapY),O(t,e);for(let e=0;e<t.plots.length;e+=1){let r=t.plots[e];switch(r.type){case"line":var l=r.style.linestyle;if("--"==l?t.canvas.append("path").style("fill","none").style("stroke",r.style.color).style("stroke-width",r.style.linewidth).style("fill-opacity",r.style.alpha).style("stroke-dasharray","10,8").attr("class","line").attr("d",t.mapLine(r.data)):"-."==l?t.canvas.append("path").style("fill","none").style("stroke",r.style.color).style("stroke-width",r.style.linewidth).style("fill-opacity",r.style.alpha).style("stroke-dasharray","10,5,2,5").attr("class","line").attr("d",t.mapLine(r.data)):":"==l?t.canvas.append("path").style("fill","none").style("stroke",r.style.color).style("stroke-width",r.style.linewidth).style("fill-opacity",r.style.alpha).style("stroke-dasharray","2,3").attr("class","line").attr("d",t.mapLine(r.data)):t.canvas.append("path").style("fill","none").style("stroke",r.style.color).style("stroke-width",r.style.linewidth).style("fill-opacity",r.style.alpha).attr("class","line").attr("d",t.mapLine(r.data)),","==(a=r.style.marker))break;"o"==a?t.canvas.append("g").attr("class","series").selectAll(".point").data(r.data).enter().append("circle").style("fill",((t,e)=>null==r.colors?r.style.color:Array.isArray(r.colors)?r.colors[e]||r.style.color:r.colors)).attr("class","dot_of_line").attr("cx",t.mapX).attr("cy",t.mapY).attr("r",4):t.canvas.append("g").attr("class","series").selectAll(".point").data(r.data).enter().append("circle").style("fill",((t,e)=>null==r.colors?r.style.color:Array.isArray(r.colors)?r.colors[e]||r.style.color:r.colors)).attr("class","dot_of_line").attr("cx",t.mapX).attr("cy",t.mapY).attr("r",2);break;case"one_line":t.canvas.append("line").style("stroke",r.style.color).style("stroke-width",r.style.linewidth).style("fill-opacity",r.style.alpha).attr("x1",t.xScale(r.data.x1)).attr("x2",t.xScale(r.data.x2)).attr("y1",t.yScale(r.data.y1)).attr("y2",t.yScale(r.data.y2));break;case"scatter":var a;if(","==(a=r.style.marker)){t.canvas.append("g").attr("class","series").selectAll(".point").data(r.data).enter().append("rect").style("fill",((t,e)=>null==r.colors?r.style.color:Array.isArray(r.colors)?r.colors[e]||r.style.color:r.colors)).attr("class","rect").attr("x",t.mapX).attr("y",t.mapY).attr("width",5).attr("height",5);break}"o"==a?t.canvas.append("g").attr("class","series").selectAll(".point").data(r.data).enter().append("circle").style("fill",((t,e)=>null==r.colors?r.style.color:Array.isArray(r.colors)?r.colors[e]||r.style.color:r.colors)).attr("class","scatter_dot").attr("cx",t.mapX).attr("cy",t.mapY).attr("r",5):t.canvas.append("g").attr("class","series").selectAll(".point").data(r.data).enter().append("circle").style("fill",((t,e)=>null==r.colors?r.style.color:Array.isArray(r.colors)?r.colors[e]||r.style.color:r.colors)).attr("class","scatter_dot").attr("cx",t.mapX).attr("cy",t.mapY).attr("r",2.5);break;case"hist":let e=K(r);t.canvas.selectAll(".bar").data(e).enter().append("rect").attr("class","bar").style("fill",r.style.color).style("stroke","black").attr("x",(function(e){return t.xScale(e.x0)})).attr("width",(e=>t.xScale(e.x1)-t.xScale(e.x0))).attr("y",(function(e){return t.yScale(e.length)})).attr("height",(function(e){return t.height-t.yScale(e.length)}));break;case"bar":t.canvas.selectAll(".bar").data(r.data).enter().append("rect").attr("class","bar").style("fill",r.style.color).style("stroke","black").attr("x",(function(e){let l="center"===r.align?r.width/2:0;return t.xScale(e.x-l)})).attr("width",(function(e){return t.xScale(e.x+r.width)-t.xScale(e.x)})).attr("y",t.mapY).attr("height",(function(e){return t.height-t.yScale(e.y)}));break;case"boxplot":const i=.6;t.canvas.append("line").attr("x1",t.xScale(r.data.x)).attr("x2",t.xScale(r.data.x)).attr("y1",t.yScale(r.data.y[0])).attr("y2",t.yScale(r.data.y[1])).attr("stroke","black"),t.canvas.append("line").attr("x1",t.xScale(r.data.x)).attr("x2",t.xScale(r.data.x)).attr("y1",t.yScale(r.data.y[3])).attr("y2",t.yScale(r.data.y[4])).attr("stroke","black"),t.canvas.append("rect").attr("x",t.xScale(r.data.x-i/2)).attr("y",t.yScale(r.data.y[3])).attr("height",t.yScale(r.data.y[1])-t.yScale(r.data.y[3])).attr("width",t.xScale(i)).attr("stroke","black").style("fill","none"),t.canvas.selectAll(".boxplot").data([r.data.y[0],r.data.y[2],r.data.y[4]]).enter().append("line").attr("x1",t.xScale(r.data.x-i/2)).attr("x2",t.xScale(r.data.x+i/2)).attr("y1",t.yScale).attr("y2",t.yScale).attr("class","boxplot").attr("stroke","black")}}!function(t){let e=(new XMLSerializer).serializeToString(t.svg.node()),l=new Blob(['<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'+e],{type:"image/svg+xml"}),a=window.URL.createObjectURL(l),r=document.createElement("a"),i=document.createElement("img");i.style.display="block";let n=t,s=t.labels.title;z(),n.svg.node().parentNode.replaceChild(r,n.svg.node()),i.onload=function(){i.onload=null;let t=document.createElement("canvas");t.width=_(),t.height=v(),t.getContext("2d").drawImage(i,0,0);let e=t.toDataURL("image/png");i.setAttribute("src",e),i.setAttribute("title","Generated plot titled: "+s),i.setAttribute("alt","Generated plot titled: "+s),r.setAttribute("href",e),r.setAttribute("download",s)},i.onerror=function(t){console.error(t)},i.setAttribute("src",a),r.appendChild(i)}(t)}));e.title=new Sk.builtin.func((function(t){if(Sk.builtin.pyCheckArgs("title",arguments,1,1),!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' is not supported for title; should be a string.");M().labels.title=Sk.ffi.remapToJs(t)}));e.xlabel=new Sk.builtin.func((function(t){if(Sk.builtin.pyCheckArgs("xlabel",arguments,1,1),!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' is not supported for xlabel; should be a string.");M().labels["x-axis"]=Sk.ffi.remapToJs(t)}));e.ylabel=new Sk.builtin.func((function(t){if(Sk.builtin.pyCheckArgs("ylabel",arguments,1,1),!Sk.builtin.checkString(t))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(t)+"' is not supported for ylabel; should be a string.");M().labels["y-axis"]=Sk.ffi.remapToJs(t)}));let Q=function(t){Sk.builtin.pyCheckArgs("xticks",arguments,0,1/0,!0,!1);let e=Array.prototype.slice.call(arguments,1),l=N(new Sk.builtins.dict(t),F,"horizontal"),a=M();if(1===e.length){a.ticks.x={};for(let t=0;t<e[0].length;t+=1)a.ticks.x[t]=t}else if(2===e.length){a.ticks.x={};for(let t=0;t<e[0].length;t+=1)a.ticks.x[t]=e[2][t]}a.ticks.xRotate=l};Q.co_kwargs=!0,e.xticks=new Sk.builtin.func(Q);e.clf=new Sk.builtin.func((function(){z()}));const Z=["semilogx","semilogy","specgram","stackplot","stem","step","streamplot","tricontour","tricontourf","tripcolor","triplot","xcorr","barbs","cla","grid","table","text","annotate","ticklabel_format","locator_params","tick_params","margins","autoscale","autumn","cool","copper","flag","gray","hot","hsv","jet","pink","prism","spring","summer","winter","spectral","loglog","magnitude_spectrum","pcolor","pcolormesh","phase_spectrum","pie","plot_date","psd","quiver","quiverkey","findobj","switch_backend","isinteractive","ioff","ion","pause","rc","rc_context","rcdefaults","gci","sci","xkcd","figure","gcf","get_fignums","get_figlabels","get_current_fig_manager","connect","disconnect","close","savefig","ginput","waitforbuttonpress","figtext","suptitle","figimage","figlegend","hold","ishold","over","delaxes","sca","gca","subplot","subplots","subplot2grid","twinx","twiny","subplots_adjust","subplot_tool","tight_layout","box","xlim","ylim","xscale","yscale","yticks","minorticks_on","minorticks_off","rgrids","thetagrids","plotting","get_plot_commands","colors","colormaps","_setup_pyplot_info_docstrings","colorbar","clim","set_cmap","imread","imsave","matshow","polar","plotfile","_autogen_docstring","acorr","arrow","axhline","axhspan","axvline","axvspan",,"broken_barh","cohere","clabel","contour","contourf","csd","errorbar","eventplot","fill","fill_between","fill_betweenx","hexbin","hist2d","axis"];for(let t=0;t<Z.length;t+=1)e[Z[t]]=new Sk.builtin.func((function(){throw new Sk.builtin.NotImplementedError(Z[t]+" is not yet implemented")}));return e.legend=new Sk.builtin.func((function(){return Sk.builtin.none.none$})),e};Sk.jsplotlib.rc={"lines.linewidth":1,"lines.linestyle":"-","lines.color":"blue","lines.marker":"None","lines.markeredgewidth":.5,"lines.markersize":6,"lines.dash_joinstyle":"miter","lines.dash_capstyle":"butt","lines.solid_jointyle":"miter","lines.solid_capstyle":"projecting","lines.antialiased":!0,"patch.linewidth":1,"patch.facecolor":"blue","patch.edgecolor":"black","patch.antialiased":!0,"text.color":"black","axes.hold":!0,"axes.facecolor":"white","axes.edgecolor":"black","axes.grid":!1,"axes.titlesize":"large","axes.labelsize":"medium","axes.labelweigth":"normal","axes.labelcolor":"black","axes.axisbelow":!1,"axes.color_cycle":["b","g","r","c","m","y","k"]},Sk.jsplotlib._line_counter=0,Sk.jsplotlib.lineStyles={"-":"_draw_solid","--":"_draw_dashed","-.":"_draw_dash_dot",":":"_draw_dotted",None:"_draw_nothing"," ":"_draw_nothing","":"_draw_nothing"},Sk.jsplotlib.lineMarkers={".":"point",",":"pixel",o:"circle",v:"triangle_down","^":"triangle_up","<":"triangle_left",">":"triangle_right",1:"tri_down",2:"tri_up",3:"tri_left",4:"tri_right",8:"octagon",s:"square",p:"pentagon","*":"star",h:"hexagon1",H:"hexagon2","+":"plus",x:"x",D:"diamond",d:"thin_diamond","|":"vline",_:"hline",None:"nothing"," ":"nothing","":"nothing"},Sk.jsplotlib.colors={b:"blue",g:"green",r:"red",c:"cyan",m:"magenta",y:"yellow",k:"black",w:"white"},Sk.jsplotlib.cnames={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksage:"#598556",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgray:"#D3D3D3",lightpink:"#FFB6C1",lightsage:"#BCECAC",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sage:"#87AE73",sandybrown:"#FAA460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"},Sk.jsplotlib.color_to_hex=function(t){if(Sk.jsplotlib.colors[t]&&(t=Sk.jsplotlib.colors[t]),Sk.jsplotlib.cnames[t])return Sk.jsplotlib.cnames[t];if("string"==typeof t){var e=t.match(/^#(?:[0-9a-fA-F]{3}){1,2}$/);if(e&&1===e.length)return e[0]}return Array.isArray(t)&&3===t.length?Sk.jsplotlib.rgb2hex(t):Sk.jsplotlib.cnames[Sk.jsplotlib.rc["lines.color"]]},Sk.jsplotlib.get_color=function(t){return Sk.jsplotlib.colors[t]?Sk.jsplotlib.colors[t]:Sk.jsplotlib.colors.b},Sk.jsplotlib.parse_marker=function(t){if(!t)return"x";switch(t){case".":return".";case",":return",";case"o":return"o";case"v":case"^":case"<":case">":case"1":case"2":case"3":case"4":case"s":case"p":case"*":case"h":case"H":case"+":case"x":case"D":case"d":case"|":case"_":return"x";default:return""}},Sk.jsplotlib._process_plot_format=function(t){var e,l=null,a=null,r=null;try{if(r=Sk.jsplotlib.to_rgb(t))return{linestyle:l,marker:a,color:r}}catch(t){}for(t.search(/--/)>=0&&(l="--",t=t.replace(/--/,"")),t.search(/-\./)>=0&&(l="-.",t=t.replace(/-\./,"")),t.search(/ /)>=0&&(l="",t=t.replace(/ /,"")),e=0;e<t.length;e++){var i=t.charAt(e);if(Sk.jsplotlib.lineStyles[i]){if(l)throw new Sk.builtin.ValueError('Illegal format string "'+t+'"; two linestyle symbols');l=i}else if(Sk.jsplotlib.lineMarkers[i]){if(a)throw new Sk.builtin.ValueError('Illegal format string "'+t+'"; two marker symbols');a=i}else{if(!Sk.jsplotlib.colors[i])throw new Sk.builtin.ValueError("Unrecognized character "+i+" in format string");if(r)throw new Sk.builtin.ValueError('Illegal format string "'+t+'"; two color symbols');r=i}}return l||a||(l="-"),l||(l=" "),a||(a=""),{linestyle:l,marker:a,color:r}},Sk.jsplotlib.to_rgb=function(t){if(!t)return null;var e=null;if("string"==typeof t){let e=t.toLowerCase();if(Sk.jsplotlib.colors[e])return Sk.jsplotlib.hex2color(Sk.jsplotlib.cnames[Sk.jsplotlib.colors[e]]);if(Sk.jsplotlib.cnames[e])return Sk.jsplotlib.hex2color(Sk.jsplotlib.cnames[e]);if(0===e.indexOf("#"))return Sk.jsplotlib.hex2color(e);var l=parseFloat(e);if(isNaN(l))throw new Sk.builtin.ValueError("cannot convert argument to rgb sequence");if(l<0||l>1)throw new Sk.builtin.ValueError("gray (string) must be in range 0-1");return[l,l,l]}if(Array.isArray(t)){if(t.length>4||t.length<3)throw new Sk.builtin.ValueError("sequence length is "+t.length+"; must be 3 or 4");var a;for(e=t.slice(0,3),a=0;a<3;a++){var r=parseFloat(t);if(r<0||r>1)throw new Sk.builtin.ValueError("number in rbg sequence outside 0-1 range")}}return e},Sk.jsplotlib.hex2color=function(t){if(!t||"string"!=typeof t)throw new Sk.builtin.TypeError("hex2color requires a string argument");var e,l=t,a=[];for(e=0;e<3;e++){var r=l.match(/(?:[0-9a-fA-F]){1,2}$/);r&&1===r.length&&(a.push(r[0]),l=l.substring(0,r.index))}if(3===a.length){var i=[];return i[0]=parseInt(a[0],16)/255,i[1]=parseInt(a[1],16)/255,i[2]=parseInt(a[2],16)/255,i.reverse()}throw new Sk.builtin.ValueError('invalid hex color string "'+t+'"')},Sk.jsplotlib.rgb2hex=function(t){if(!t)return null;if(t.length&&t.length>=3){var e,l="#";for(e=0;e<3;e++){var a=Math.round(255*t[e]).toString(16);l+=2==a.length?a:"0"+a}return l}};