diff --git a/docs/charts/accuracy_chart_from_labels_table.ipynb b/docs/charts/accuracy_chart_from_labels_table.ipynb index cc2fb041d9..c4998ea4d6 100644 --- a/docs/charts/accuracy_chart_from_labels_table.ipynb +++ b/docs/charts/accuracy_chart_from_labels_table.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "metadata": { "tags": [ "hide_input" @@ -23,23 +23,23 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ "alt.LayerChart(...)" ] }, - "execution_count": 5, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "from splink import splink_datasets, DuckDBAPI\n", - "from splink.exploratory import completeness_chart\n", - "\n", - "df = splink_datasets.fake_1000\n", - "\n", - "# Split a simple dataset into two, separate datasets which can be linked together.\n", - "df_l = df.sample(frac=0.5)\n", - "df_r = df.drop(df_l.index)\n", - "\n", - "\n", - "completeness_chart([df_l, df_r], db_api=DuckDBAPI())" + "chart" ] }, { @@ -193,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": { "tags": [ "hide_output" @@ -205,23 +195,23 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ "alt.LayerChart(...)" ] }, - "execution_count": 4, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -290,7 +280,8 @@ "df_r = df.drop(df_l.index)\n", "\n", "\n", - "completeness_chart([df_l, df_r], db_api=DuckDBAPI())" + "chart = completeness_chart([df_l, df_r], db_api=DuckDBAPI())\n", + "chart" ] } ], diff --git a/docs/charts/img/cluster_studio.html b/docs/charts/img/cluster_studio.html index fcfc24b6cd..bf5d4e8ded 100644 --- a/docs/charts/img/cluster_studio.html +++ b/docs/charts/img/cluster_studio.html @@ -148,6 +148,42 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -177,25 +213,7 @@ function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r")),a&&(o+=''));const c=Object.keys(s);if(c.length>0){o+="";for(const e of c){let r=s[e];void 0!==r&&(An(r)&&(r=xn(r,n)),o+='"))}o+="
'.concat(t(e),':').concat(t(r),"
"}return o||"{}"}return t(e)}};class Rn{constructor(e){this.options=Object.assign(Object.assign({},Nn),e);const t=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const e=document.createElement("style");e.setAttribute("id",this.options.styleId),e.innerHTML=function(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw new Error("Invalid HTML ID");return"#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black; }\n #vg-tooltip-element.visible {\n visibility: visible; }\n #vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px; }\n #vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px; }\n #vg-tooltip-element table {\n border-spacing: 0; }\n #vg-tooltip-element table tr {\n border: none; }\n #vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px; }\n #vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px; }\n #vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left; }\n #vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white; }\n #vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf; }\n".toString().replace(In,e)}(t);const n=document.head;n.childNodes.length>0?n.insertBefore(e,n.childNodes[0]):n.appendChild(e)}}tooltipHandler(e,t,n,o){var r;this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip"),document.body.appendChild(this.el));if((null!==(r=document.fullscreenElement)&&void 0!==r?r:document.body).appendChild(this.el),null==o||""===o)return void this.el.classList.remove("visible","".concat(this.options.theme,"-theme"));this.el.innerHTML=this.options.formatTooltip(o,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible","".concat(this.options.theme,"-theme"));const{x:i,y:a}=function(e,t,n,o){let r=e.clientX+n;r+t.width>window.innerWidth&&(r=+e.clientX-n-t.width);let i=e.clientY+o;return i+t.height>window.innerHeight&&(i=+e.clientY-o-t.height),{x:r,y:i}}(t,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY);this.el.setAttribute("style","top: ".concat(a,"px; left: ").concat(i,"px"))}}function Tn(e,t,n){const o=e.open(t),{origin:r}=new URL(t);let i=40;e.addEventListener("message",(function t(n){n.source===o&&(i=0,e.removeEventListener("message",t,!1))}),!1),setTimeout((function e(){i<=0||(o.postMessage(n,r),setTimeout(e,250),i-=1)}),250)}var Ln='.vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\n.vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n outline: none;\n cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\n.vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left;\n}\n.vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none;\n}\n.vega-embed .vega-actions a:hover {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: "";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid #0000;\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid #0000;\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n';function Sn(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")}function Dn(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;oe,"vega-lite":(e,t)=>_n.compile(e,{config:t}).spec},Xn='\n\n \n \n \n',Vn="chart-wrapper";function Wn(e){return"function"==typeof e}function Hn(e,t,n,o){const r="".concat(t,'
'),i="
".concat(n,""),a=window.open("");a.document.write(r+e+i),a.document.title="".concat(Un[o]," JSON Source")}function $n(e,t){if(e.$schema){const o=Pt(e.$schema);var n;if(t&&t!==o.library)console.warn("The given visualization spec is written in ".concat(Un[o.library],", but mode argument sets ").concat(null!==(n=Un[t])&&void 0!==n?n:t,"."));const r=o.library;return xt(Bn[r],"^".concat(o.version.slice(1)))||console.warn("The input spec uses ".concat(Un[r]," ").concat(o.version,", but the current version of ").concat(Un[r]," is v").concat(Bn[r],".")),r}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":null!=t?t:"vega"}function qn(e){return(t=e)&&"load"in t?e:Pn.loader(e);var t}function Yn(e){var t;return null!==(t=e.usermeta&&e.usermeta.embedOptions)&&void 0!==t?t:{}}async function Jn(t,n){var o,r;let i,a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e.isString(n)?(a=qn(s.loader),i=JSON.parse(await a.load(n))):i=n;const c=Yn(i).loader;var l;a&&!c||(a=qn(null!==(l=s.loader)&&void 0!==l?l:c));const h=await Qn(Yn(i),a),p=await Qn(s,a),u={...Dn(p,h),config:e.mergeConfig(null!==(o=p.config)&&void 0!==o?o:{},null!==(r=h.config)&&void 0!==r?r:{})};return await Kn(t,i,u,a)}async function Qn(t,n){var o;const r=e.isString(t.config)?JSON.parse(await n.load(t.config)):null!==(o=t.config)&&void 0!==o?o:{},i=e.isString(t.patch)?JSON.parse(await n.load(t.patch)):t.patch;return{...t,...i?{patch:i}:{},...r?{config:r}:{}}}function Zn(e){var t;const n=e.getRootNode?e.getRootNode():document;return n instanceof ShadowRoot?{root:n,rootContainer:n}:{root:document,rootContainer:null!==(t=document.head)&&void 0!==t?t:document.body}}async function Kn(t,n){var o,r,i,a,s,c,l;let h=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},p=arguments.length>3?arguments[3]:void 0;const u=h.theme?e.mergeConfig(vn[h.theme],null!==(o=h.config)&&void 0!==o?o:{}):h.config,d=e.isBoolean(h.actions)?h.actions:Dn({},jn,null!==(r=h.actions)&&void 0!==r?r:{}),f={...zn,...h.i18n},g=null!==(i=h.renderer)&&void 0!==i?i:"canvas",v=null!==(a=h.logLevel)&&void 0!==a?a:Pn.Warn,m=null!==(s=h.downloadFileName)&&void 0!==s?s:"visualization",E="string"==typeof t?document.querySelector(t):t;if(!E)throw new Error("".concat(t," does not exist"));if(!1!==h.defaultStyle){const e="vega-embed-style",{root:t,rootContainer:n}=Zn(E);if(!t.getElementById(e)){const t=document.createElement("style");t.id=e,t.innerText=void 0===h.defaultStyle||!0===h.defaultStyle?Ln.toString():h.defaultStyle,n.appendChild(t)}}const b=$n(n,h.mode);let y=Gn[b](n,u);if("vega-lite"===b&&y.$schema){const e=Pt(y.$schema);xt(Bn.vega,"^".concat(e.version.slice(1)))||console.warn("The compiled spec uses Vega ".concat(e.version,", but current version is v").concat(Bn.vega,"."))}E.classList.add("vega-embed"),d&&E.classList.add("has-actions"),E.innerHTML="";let w=E;if(d){const e=document.createElement("div");e.classList.add(Vn),E.appendChild(e),w=e}const O=h.patch;O&&(y=O instanceof Function?O(y):A(y,O,!0,!1).newDocument),h.formatLocale&&Pn.formatLocale(h.formatLocale),h.timeFormatLocale&&Pn.timeFormatLocale(h.timeFormatLocale);const{ast:x}=h,I=Pn.parse(y,"vega-lite"===b?{}:u,{ast:x}),N=new(h.viewClass||Pn.View)(I,{loader:p,logLevel:v,renderer:g,...x?{expr:null!==(c=null!==(l=Pn.expressionInterpreter)&&void 0!==l?l:h.expr)&&void 0!==c?c:kt}:{}});if(N.addSignalListener("autosize",((e,t)=>{const{type:n}=t;"fit-x"==n?(w.classList.add("fit-x"),w.classList.remove("fit-y")):"fit-y"==n?(w.classList.remove("fit-x"),w.classList.add("fit-y")):"fit"==n?w.classList.add("fit-x","fit-y"):w.classList.remove("fit-x","fit-y")})),!1!==h.tooltip){const e=Wn(h.tooltip)?h.tooltip:new Rn(!0===h.tooltip?{}:h.tooltip).call;N.tooltip(e)}let R,{hover:T}=h;if(void 0===T&&(T="vega"===b),T){const{hoverSet:e,updateSet:t}="boolean"==typeof T?{}:T;N.hover(e,t)}if(h&&(null!=h.width&&N.width(h.width),null!=h.height&&N.height(h.height),null!=h.padding&&N.padding(h.padding)),await N.initialize(w,h.bind).runAsync(),!1!==d){let e=E;if(!1!==h.defaultStyle){const t=document.createElement("details");t.title=f.CLICK_TO_VIEW_ACTIONS,E.append(t),e=t;const n=document.createElement("summary");n.innerHTML=Xn,t.append(n),R=e=>{t.contains(e.target)||t.removeAttribute("open")},document.addEventListener("click",R)}const t=document.createElement("div");if(e.append(t),t.classList.add("vega-actions"),!0===d||!1!==d.export)for(const e of["svg","png"])if(!0===d||!0===d.export||d.export[e]){const n=f["".concat(e.toUpperCase(),"_ACTION")],o=document.createElement("a");o.text=n,o.href="#",o.target="_blank",o.download="".concat(m,".").concat(e),o.addEventListener("mousedown",(async function(t){t.preventDefault();const n=await N.toImageURL(e,h.scaleFactor);this.href=n})),t.append(o)}if(!0===d||!1!==d.source){const e=document.createElement("a");e.text=f.SOURCE_ACTION,e.href="#",e.addEventListener("click",(function(e){var t,o;Hn(P(n),null!==(t=h.sourceHeader)&&void 0!==t?t:"",null!==(o=h.sourceFooter)&&void 0!==o?o:"",b),e.preventDefault()})),t.append(e)}if("vega-lite"===b&&(!0===d||!1!==d.compiled)){const e=document.createElement("a");e.text=f.COMPILED_ACTION,e.href="#",e.addEventListener("click",(function(e){var t,n;Hn(P(y),null!==(t=h.sourceHeader)&&void 0!==t?t:"",null!==(n=h.sourceFooter)&&void 0!==n?n:"","vega"),e.preventDefault()})),t.append(e)}if(!0===d||!1!==d.editor){var L;const e=null!==(L=h.editorUrl)&&void 0!==L?L:"https://vega.github.io/editor/",o=document.createElement("a");o.text=f.EDITOR_ACTION,o.href="#",o.addEventListener("click",(function(t){Tn(window,e,{config:u,mode:b,renderer:g,spec:P(n)}),t.preventDefault()})),t.append(o)}}function S(){R&&document.removeEventListener("click",R),N.finalize()}return{view:N,spec:n,vgSpec:y,finalize:S}}async function eo(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=document.createElement("div");o.classList.add("vega-embed-wrapper");const r=document.createElement("div");o.appendChild(r);const i=!0===n.actions||!1===n.actions?n.actions:{export:!0,source:!1,compiled:!0,editor:!0,...null!==(t=n.actions)&&void 0!==t?t:{}},a=await Jn(r,e,{actions:i,...null!=n?n:{}});return o.value=a.view,o}function to(e){return e instanceof HTMLElement}const no=function(){return arguments.length>1&&(e.isString(arguments.length<=0?void 0:arguments[0])&&!Sn(arguments.length<=0?void 0:arguments[0])||to(arguments.length<=0?void 0:arguments[0])||3===arguments.length)?Jn(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2]):eo(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1])};return no.vegaLite=_n,no.vl=_n,no.container=eo,no.embed=Jn,no.vega=Pn,no.default=Jn,no.version=kn,no})); //# sourceMappingURL=vega-embed.min.js.map - - - - @@ -9463,7 +11030,7 @@

Splink cluster studio

-new splink_vis_utils.Runtime().module(splink_vis_utils.define_cluster, name => { +new splink_vis_utils.Runtime({}).module(splink_vis_utils.define_cluster, name => { diff --git a/docs/charts/img/scv.html b/docs/charts/img/scv.html index e3f140b1a6..df15a11b6f 100644 --- a/docs/charts/img/scv.html +++ b/docs/charts/img/scv.html @@ -146,6 +146,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -175,23 +212,7 @@ function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r")),a&&(o+=''));const c=Object.keys(s);if(c.length>0){o+="";for(const e of c){let r=s[e];void 0!==r&&(An(r)&&(r=xn(r,n)),o+='"))}o+="
'.concat(t(e),':').concat(t(r),"
"}return o||"{}"}return t(e)}};class Rn{constructor(e){this.options=Object.assign(Object.assign({},Nn),e);const t=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const e=document.createElement("style");e.setAttribute("id",this.options.styleId),e.innerHTML=function(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw new Error("Invalid HTML ID");return"#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black; }\n #vg-tooltip-element.visible {\n visibility: visible; }\n #vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px; }\n #vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px; }\n #vg-tooltip-element table {\n border-spacing: 0; }\n #vg-tooltip-element table tr {\n border: none; }\n #vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px; }\n #vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px; }\n #vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left; }\n #vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white; }\n #vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf; }\n".toString().replace(In,e)}(t);const n=document.head;n.childNodes.length>0?n.insertBefore(e,n.childNodes[0]):n.appendChild(e)}}tooltipHandler(e,t,n,o){var r;this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip"),document.body.appendChild(this.el));if((null!==(r=document.fullscreenElement)&&void 0!==r?r:document.body).appendChild(this.el),null==o||""===o)return void this.el.classList.remove("visible","".concat(this.options.theme,"-theme"));this.el.innerHTML=this.options.formatTooltip(o,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible","".concat(this.options.theme,"-theme"));const{x:i,y:a}=function(e,t,n,o){let r=e.clientX+n;r+t.width>window.innerWidth&&(r=+e.clientX-n-t.width);let i=e.clientY+o;return i+t.height>window.innerHeight&&(i=+e.clientY-o-t.height),{x:r,y:i}}(t,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY);this.el.setAttribute("style","top: ".concat(a,"px; left: ").concat(i,"px"))}}function Tn(e,t,n){const o=e.open(t),{origin:r}=new URL(t);let i=40;e.addEventListener("message",(function t(n){n.source===o&&(i=0,e.removeEventListener("message",t,!1))}),!1),setTimeout((function e(){i<=0||(o.postMessage(n,r),setTimeout(e,250),i-=1)}),250)}var Ln='.vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\n.vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n outline: none;\n cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\n.vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left;\n}\n.vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none;\n}\n.vega-embed .vega-actions a:hover {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: "";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid #0000;\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid #0000;\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n';function Sn(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")}function Dn(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;oe,"vega-lite":(e,t)=>_n.compile(e,{config:t}).spec},Xn='\n\n \n \n \n',Vn="chart-wrapper";function Wn(e){return"function"==typeof e}function Hn(e,t,n,o){const r="".concat(t,'
'),i="
".concat(n,""),a=window.open("");a.document.write(r+e+i),a.document.title="".concat(Un[o]," JSON Source")}function $n(e,t){if(e.$schema){const o=Pt(e.$schema);var n;if(t&&t!==o.library)console.warn("The given visualization spec is written in ".concat(Un[o.library],", but mode argument sets ").concat(null!==(n=Un[t])&&void 0!==n?n:t,"."));const r=o.library;return xt(Bn[r],"^".concat(o.version.slice(1)))||console.warn("The input spec uses ".concat(Un[r]," ").concat(o.version,", but the current version of ").concat(Un[r]," is v").concat(Bn[r],".")),r}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":null!=t?t:"vega"}function qn(e){return(t=e)&&"load"in t?e:Pn.loader(e);var t}function Yn(e){var t;return null!==(t=e.usermeta&&e.usermeta.embedOptions)&&void 0!==t?t:{}}async function Jn(t,n){var o,r;let i,a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e.isString(n)?(a=qn(s.loader),i=JSON.parse(await a.load(n))):i=n;const c=Yn(i).loader;var l;a&&!c||(a=qn(null!==(l=s.loader)&&void 0!==l?l:c));const h=await Qn(Yn(i),a),p=await Qn(s,a),u={...Dn(p,h),config:e.mergeConfig(null!==(o=p.config)&&void 0!==o?o:{},null!==(r=h.config)&&void 0!==r?r:{})};return await Kn(t,i,u,a)}async function Qn(t,n){var o;const r=e.isString(t.config)?JSON.parse(await n.load(t.config)):null!==(o=t.config)&&void 0!==o?o:{},i=e.isString(t.patch)?JSON.parse(await n.load(t.patch)):t.patch;return{...t,...i?{patch:i}:{},...r?{config:r}:{}}}function Zn(e){var t;const n=e.getRootNode?e.getRootNode():document;return n instanceof ShadowRoot?{root:n,rootContainer:n}:{root:document,rootContainer:null!==(t=document.head)&&void 0!==t?t:document.body}}async function Kn(t,n){var o,r,i,a,s,c,l;let h=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},p=arguments.length>3?arguments[3]:void 0;const u=h.theme?e.mergeConfig(vn[h.theme],null!==(o=h.config)&&void 0!==o?o:{}):h.config,d=e.isBoolean(h.actions)?h.actions:Dn({},jn,null!==(r=h.actions)&&void 0!==r?r:{}),f={...zn,...h.i18n},g=null!==(i=h.renderer)&&void 0!==i?i:"canvas",v=null!==(a=h.logLevel)&&void 0!==a?a:Pn.Warn,m=null!==(s=h.downloadFileName)&&void 0!==s?s:"visualization",E="string"==typeof t?document.querySelector(t):t;if(!E)throw new Error("".concat(t," does not exist"));if(!1!==h.defaultStyle){const e="vega-embed-style",{root:t,rootContainer:n}=Zn(E);if(!t.getElementById(e)){const t=document.createElement("style");t.id=e,t.innerText=void 0===h.defaultStyle||!0===h.defaultStyle?Ln.toString():h.defaultStyle,n.appendChild(t)}}const b=$n(n,h.mode);let y=Gn[b](n,u);if("vega-lite"===b&&y.$schema){const e=Pt(y.$schema);xt(Bn.vega,"^".concat(e.version.slice(1)))||console.warn("The compiled spec uses Vega ".concat(e.version,", but current version is v").concat(Bn.vega,"."))}E.classList.add("vega-embed"),d&&E.classList.add("has-actions"),E.innerHTML="";let w=E;if(d){const e=document.createElement("div");e.classList.add(Vn),E.appendChild(e),w=e}const O=h.patch;O&&(y=O instanceof Function?O(y):A(y,O,!0,!1).newDocument),h.formatLocale&&Pn.formatLocale(h.formatLocale),h.timeFormatLocale&&Pn.timeFormatLocale(h.timeFormatLocale);const{ast:x}=h,I=Pn.parse(y,"vega-lite"===b?{}:u,{ast:x}),N=new(h.viewClass||Pn.View)(I,{loader:p,logLevel:v,renderer:g,...x?{expr:null!==(c=null!==(l=Pn.expressionInterpreter)&&void 0!==l?l:h.expr)&&void 0!==c?c:kt}:{}});if(N.addSignalListener("autosize",((e,t)=>{const{type:n}=t;"fit-x"==n?(w.classList.add("fit-x"),w.classList.remove("fit-y")):"fit-y"==n?(w.classList.remove("fit-x"),w.classList.add("fit-y")):"fit"==n?w.classList.add("fit-x","fit-y"):w.classList.remove("fit-x","fit-y")})),!1!==h.tooltip){const e=Wn(h.tooltip)?h.tooltip:new Rn(!0===h.tooltip?{}:h.tooltip).call;N.tooltip(e)}let R,{hover:T}=h;if(void 0===T&&(T="vega"===b),T){const{hoverSet:e,updateSet:t}="boolean"==typeof T?{}:T;N.hover(e,t)}if(h&&(null!=h.width&&N.width(h.width),null!=h.height&&N.height(h.height),null!=h.padding&&N.padding(h.padding)),await N.initialize(w,h.bind).runAsync(),!1!==d){let e=E;if(!1!==h.defaultStyle){const t=document.createElement("details");t.title=f.CLICK_TO_VIEW_ACTIONS,E.append(t),e=t;const n=document.createElement("summary");n.innerHTML=Xn,t.append(n),R=e=>{t.contains(e.target)||t.removeAttribute("open")},document.addEventListener("click",R)}const t=document.createElement("div");if(e.append(t),t.classList.add("vega-actions"),!0===d||!1!==d.export)for(const e of["svg","png"])if(!0===d||!0===d.export||d.export[e]){const n=f["".concat(e.toUpperCase(),"_ACTION")],o=document.createElement("a");o.text=n,o.href="#",o.target="_blank",o.download="".concat(m,".").concat(e),o.addEventListener("mousedown",(async function(t){t.preventDefault();const n=await N.toImageURL(e,h.scaleFactor);this.href=n})),t.append(o)}if(!0===d||!1!==d.source){const e=document.createElement("a");e.text=f.SOURCE_ACTION,e.href="#",e.addEventListener("click",(function(e){var t,o;Hn(P(n),null!==(t=h.sourceHeader)&&void 0!==t?t:"",null!==(o=h.sourceFooter)&&void 0!==o?o:"",b),e.preventDefault()})),t.append(e)}if("vega-lite"===b&&(!0===d||!1!==d.compiled)){const e=document.createElement("a");e.text=f.COMPILED_ACTION,e.href="#",e.addEventListener("click",(function(e){var t,n;Hn(P(y),null!==(t=h.sourceHeader)&&void 0!==t?t:"",null!==(n=h.sourceFooter)&&void 0!==n?n:"","vega"),e.preventDefault()})),t.append(e)}if(!0===d||!1!==d.editor){var L;const e=null!==(L=h.editorUrl)&&void 0!==L?L:"https://vega.github.io/editor/",o=document.createElement("a");o.text=f.EDITOR_ACTION,o.href="#",o.addEventListener("click",(function(t){Tn(window,e,{config:u,mode:b,renderer:g,spec:P(n)}),t.preventDefault()})),t.append(o)}}function S(){R&&document.removeEventListener("click",R),N.finalize()}return{view:N,spec:n,vgSpec:y,finalize:S}}async function eo(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=document.createElement("div");o.classList.add("vega-embed-wrapper");const r=document.createElement("div");o.appendChild(r);const i=!0===n.actions||!1===n.actions?n.actions:{export:!0,source:!1,compiled:!0,editor:!0,...null!==(t=n.actions)&&void 0!==t?t:{}},a=await Jn(r,e,{actions:i,...null!=n?n:{}});return o.value=a.view,o}function to(e){return e instanceof HTMLElement}const no=function(){return arguments.length>1&&(e.isString(arguments.length<=0?void 0:arguments[0])&&!Sn(arguments.length<=0?void 0:arguments[0])||to(arguments.length<=0?void 0:arguments[0])||3===arguments.length)?Jn(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2]):eo(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1])};return no.vegaLite=_n,no.vl=_n,no.container=eo,no.embed=Jn,no.vega=Pn,no.default=Jn,no.version=kn,no})); //# sourceMappingURL=vega-embed.min.js.map - - + @@ -9483,7 +10995,7 @@

Splink comparison viewer

-new splink_vis_utils.Runtime().module(splink_vis_utils.define_comparison, name => { +new splink_vis_utils.Runtime({}).module(splink_vis_utils.define_comparison, name => { diff --git a/mkdocs.yml b/mkdocs.yml index 130cf41e87..c2fb026ab4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -37,10 +37,12 @@ theme: name: Switch to light mode custom_dir: docs/overrides plugins: - # I have tried https://github.com/greenape/mknotebooks/blob/master/examples/cell_tag_remove/mkdocs.yml - # and it doesn't work, see also https://github.com/moj-analytical-services/splink/pull/2033 - # and https://github.com/greenape/mknotebooks/issues/1118 - - mknotebooks + - mknotebooks: + tag_remove_configs: + remove_input_tags: + - hide_input + remove_all_outputs_tags: + - hide_output - blog: post_date_format: long archive: false @@ -136,6 +138,13 @@ nav: - SplinkDataFrame: "api_docs/splink_dataframe.md" - Blocking: "api_docs/blocking.md" - EM Training Session API: "api_docs/em_training_session.md" + - Charts Gallery: + - "charts/index.md" + - Exploratory Analysis: + - completeness chart: "charts/completeness_chart.ipynb" + - profile columns: "charts/profile_columns.ipynb" + - Model Evaluation: + - accuracy chart from labels table: "charts/accuracy_chart_from_labels_table.ipynb" - Topic Guides: - Comparing Records: - Defining and customising comparisons: "topic_guides/comparisons/customising_comparisons.ipynb" @@ -165,5 +174,6 @@ extra: - icon: fontawesome/solid/rss link: https://moj-analytical-services.github.io/splink/feed_rss_created.xml new: Recently added -exclude: - - "api_docs/**" \ No newline at end of file +exclude_docs: | + # api_docs/** + demos/** \ No newline at end of file