CINXE.COM
Archive of stories published by Plotly – Medium
<!DOCTYPE html><html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain"><title>Archive of stories published by Plotly – Medium</title><link rel="canonical" href="https://medium.com/plotly/archive"><meta name="robots" content="index,follow"><meta name="title" content="Archive of stories published by Plotly – Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="Read top stories published by Plotly. Plotly is a data visualization company that makes it easy to build, test, and deploy beautiful interactive web apps, charts and graphs—in any programming language."><meta name="theme-color" content="#000000"><meta property="og:title" content="Archive of stories published by Plotly – Medium"><meta property="twitter:title" content="Archive of stories published by Plotly – Medium"><meta property="og:url" content="https://medium.com/plotly/archive"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Read top stories published by Plotly. Plotly is a data visualization company that makes it easy to build, test, and deploy beautiful interactive web apps, charts and graphs—in any programming language."><meta name="twitter:description" content="Read top stories published by Plotly. Plotly is a data visualization company that makes it easy to build, test, and deploy beautiful interactive web apps, charts and graphs—in any programming language."><meta name="twitter:image:src" content=""><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@Medium"><meta property="og:site_name" content="Medium"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://plotly/archive"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://plotly/archive"><meta property="al:android:url" content="medium://plotly/archive"><meta property="al:web:url" content="https://medium.com/plotly/archive"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" /><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/plotly/archive" /><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.tWIMt8r3Nl52PPi9OfgcVw.12.css"><script>!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach(function(n){n(o,t)}),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);</script><script>document.domain = document.domain;</script><script>if (window.top !== window.self) window.location = 'about:blank';var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "G-7JY7T788PK", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname});ga("send", "pageview");</script><script async src="https://www.google-analytics.com/analytics.js"></script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-height100vh {height: " + height + "px !important;}.u-height110vh {height: " + Math.round(1.1 * height) + "px !important;}.u-minHeight100vh {min-height: " + height + "px !important;}.u-maxHeight100vh {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js"></script><![endif]--><link rel="icon" href="https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*4R9HdZXaBGLPD_xPoit7iA.png"><link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*4R9HdZXaBGLPD_xPoit7iA.png"><link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*4R9HdZXaBGLPD_xPoit7iA.png"><link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*4R9HdZXaBGLPD_xPoit7iA.png"><link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg" color="#171717"></head><body itemscope class=" browser-ie os-windows v-unbound v-glyph v-glyph--m2-unbound-source-serif-pro is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><div class="metabar u-clearfix u-boxShadow4px12pxBlackLightest js-metabar"><div class="branch-journeys-top"></div><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1032 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingHorizontal20"><div class="metabar-block u-flex1 u-flexCenter"><div class="js-metabarLogoLeft"><a href="https://medium.com/" data-log-event="home" class="siteNav-logo u-fillBlack u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--wordmarkMedium svgIcon--120x26px u-flex"><svg class="svgIcon-use" width="120" height="26" ><path d="M29.57 1.404l.036-.008V1.12h-7.27l-6.75 15.979-6.75-15.98H1.003v.278l.035.008c1.327.302 2 .752 2 2.374v18.993c0 1.623-.676 2.073-2.003 2.374L1 25.153v.279h5.315v-.278l-.035-.008c-1.327-.302-2-.751-2-2.374V4.88l8.67 20.552h.492l8.924-21.125V23.24c-.114 1.282-.782 1.677-1.983 1.95l-.036.009v.275h9.259V25.2l-.036-.008c-1.203-.274-1.886-.67-2-1.95l-.006-19.464h.006c0-1.622.674-2.072 2-2.374zm4.23 12.582c.15-3.412 1.367-5.875 3.41-5.918.629.01 1.157.219 1.568.62.872.852 1.282 2.634 1.219 5.298h-6.198zm-.092.962h10.85v-.046c-.03-2.61-.78-4.64-2.228-6.033-1.25-1.204-3.103-1.867-5.048-1.867h-.043c-1.01 0-2.248.246-3.13.693a7.316 7.316 0 00-2.623 2.086c-1.185 1.479-1.903 3.477-2.078 5.724a13.717 13.717 0 00-.04.755c-.004.195-.005.39-.001.587.117 5.087 2.846 9.153 7.692 9.153 4.254 0 6.73-3.132 7.348-7.336l-.312-.11c-1.085 2.259-3.034 3.628-5.252 3.461-3.028-.228-5.347-3.32-5.137-7.066m23.122 6.893c-.356.85-1.099 1.319-2.094 1.319-.995 0-1.905-.689-2.552-1.939-.694-1.342-1.06-3.24-1.06-5.487 0-4.678 1.445-7.704 3.68-7.704.937 0 1.674.468 2.026 1.284v12.527zm7.198 3.335c-1.327-.316-2-.787-2-2.492V0l-8.062 2.392v.293l.05-.004c1.111-.09 1.866.064 2.304.472.343.32.51.809.51 1.498v3.11C56.033 7.25 55.088 7 53.94 7c-2.326 0-4.453.987-5.986 2.779-1.599 1.867-2.444 4.42-2.444 7.38 0 5.287 2.584 8.84 6.43 8.84 2.25 0 4.06-1.242 4.888-3.336v2.811h7.233v-.29l-.035-.008zM70.94 3.085c0-1.65-1.236-2.896-2.875-2.896-1.632 0-2.908 1.272-2.908 2.896 0 1.624 1.278 2.896 2.908 2.896 1.64 0 2.875-1.245 2.875-2.896zm1.903 22.092c-1.327-.316-2-.787-2-2.492h-.006V7.055l-7.234 2.092v.284l.043.004c1.566.14 1.994.683 1.994 2.525v13.515h7.24v-.29l-.037-.008zm18.536 0c-1.327-.316-2-.787-2-2.492V7.055L82.49 9.078v.285l.04.004c1.28.136 1.65.71 1.65 2.56v9.88c-.426.85-1.227 1.356-2.196 1.39-1.573 0-2.439-1.07-2.439-3.012V7.055l-7.234 2.092v.284l.044.004c1.565.14 1.994.683 1.994 2.525v8.362a9.443 9.443 0 00.15 1.741l.13.57C75.243 24.845 76.848 26 79.362 26c2.129 0 3.996-1.328 4.818-3.405v2.885h7.233v-.291l-.034-.012zm28.102.298v-.291l-.035-.009c-1.44-.334-2.001-.964-2.001-2.248V12.295C117.445 8.98 115.597 7 112.5 7c-2.257 0-4.16 1.314-4.893 3.36-.582-2.168-2.257-3.36-4.734-3.36-2.175 0-3.88 1.156-4.612 3.11V7.056l-7.233 2.006v.286l.043.004c1.547.138 1.994.697 1.994 2.492v13.631h6.75v-.29l-.037-.01c-1.148-.271-1.519-.767-1.519-2.04V10.95c.304-.715.917-1.562 2.127-1.562 1.504 0 2.266 1.05 2.266 3.116v12.972h6.751v-.29l-.035-.01c-1.149-.271-1.52-.767-1.52-2.04V12.294a7.107 7.107 0 00-.095-1.21c.322-.777.97-1.696 2.23-1.696 1.524 0 2.265 1.02 2.265 3.116v12.972h7.233z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-paddingLeft10 u-sm-show r-paddingRight10"><a href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com/plotly%3F~feature=LoMobileNavBar&~channel=ShowCollectionHome&~stage=m2">Open in app</a></div><div class="u-flexCenter u-height65 u-xs-height56"><span class="u-inlineBlock u-height28 u-xs-height24 u-verticalAlignTop u-marginRight20 u-marginLeft15 u-borderRightLighter"></span></div><div class="u-flexCenter u-height65 u-xs-height56 u-marginRight18"><div class="u-xs-show"><a class="link u-baseColor--link avatar avatar--roundedRectangle" href="https://medium.com/plotly?source=avatar-lo_1a61df7beb2d-c8d304cbe76" title="Go to Plotly" aria-label="Go to Plotly" data-action-source="avatar-lo_1a61df7beb2d-c8d304cbe76"><img src="https://cdn-images-1.medium.com/fit/c/64/64/1*4R9HdZXaBGLPD_xPoit7iA.png" class="avatar-image avatar-image--icon" alt="Plotly"></a></div><div class="u-xs-hide"><a href="https://medium.com/plotly?source=logo-lo_1a61df7beb2d---c8d304cbe76" class="u-flexCenter js-collectionLogoOrName"><img height="36" width="36" src="https://cdn-images-1.medium.com/letterbox/72/72/50/50/1*BGP-bpgUuP8pmEZuMiGJAA.jpeg?source=logoAvatar-lo_1a61df7beb2d---c8d304cbe76" alt="Plotly" /></a></div></div></div><div class="metabar-block u-flex0 u-flexCenter"><div class="u-flexCenter u-height65 u-xs-height56"><div class="buttonSet buttonSet--wide u-lineHeightInherit"><a class="button button--primary button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fplotly%2Farchive&source=--------------------------nav_reg&operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/plotly/archive" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fplotly%2Farchive&source=--------------------------nav_reg&operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/plotly/archive" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-height65 u-xs-height56"></div><div class="container u-maxWidth1040 u-marginTop30"><div class="col u-xs-size12of12 u-size8of12 u-padding0"><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Archive of stories published by Plotly</span></div></div></header><div class="u-marginTop20 container u-fontSize14 u-textColorDark"><div class="row"><div class="col u-inlineBlock u-paddingLeft0 u-verticalAlignTop u-paddingRight0"><a class="button button--withChrome u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--withIconRight button--withIconAndLabel button--withSvgIcon button--chromeless" href="https://medium.com/plotly/archive"><span class="button-label"><strong>All</strong></span><span class="button-defaultState"><span class="svgIcon svgIcon--arrowRight svgIcon--21px is-flushRight"><svg class="svgIcon-use" width="21" height="21" ><path d="M8.3 4.2l6.4 6.3-6.4 6.3-.8-.8 5.5-5.5L7.5 5" fill-rule="evenodd"/></svg></span></span></a></div><div class="col u-inlineBlock u-maxWidth300 u-verticalAlignTop u-lineHeight35"><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2015">2015</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2016">2016</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2017">2017</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2018">2018</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2019">2019</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2020">2020</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2021">2021</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2022">2022</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2023">2023</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2024">2024</a></div><div class="timebucket u-inlineBlock u-width50"><a href="https://medium.com/plotly/archive/2025">2025</a></div></div><div class="col u-inlineBlock u-maxWidth300 u-verticalAlignTop u-lineHeight35"></div><div class="col u-inlineBlock u-floatRight u-verticalAlignTop u-paddingRight0 u-paddingLeft0 js-sortToggle"><button class="button button--withChrome u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--withIconRight button--withIconAndLabel button--chromeless" data-action="open-sort-popover" data-action-value="toggle"><span class="button-label js-buttonLabel">Sort by most read</span><span class="svgIcon svgIcon--arrowDown svgIcon--21px is-flushRight"><svg class="svgIcon-use" width="21" height="21" ><path d="M4 7.331l6.032 6.67.495.547.495-.547 5.973-6.603-.989-.895-5.974 6.603h.99l-6.033-6.67z" fill-rule="evenodd"/></svg></span></button></div></div></div><div class="u-marginTop25 js-postStream"><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="5ecf7191b503" data-source="collection_archive---------0-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@plotlygraphs" data-action="show-user-card" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*kX7ORGMwq0fhYPlE-qeOoQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Plotly"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@plotlygraphs?source=collection_archive---------0-----------------------" data-action="show-user-card" data-action-source="collection_archive---------0-----------------------" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto">Plotly</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------0-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------0-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/introducing-dash-5ecf7191b503?source=collection_archive---------0-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/introducing-dash-5ecf7191b503?source=collection_archive---------0-----------------------" data-action-source="preview-listing" ><time datetime="2017-06-21T14:53:12.308Z">Jun 21, 2017</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="12 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/introducing-dash-5ecf7191b503?source=collection_archive---------0-----------------------" data-action-source="collection_archive---------0-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*rRlAWnRIFf2Ti_bIXzMFSg.gif" data-width="800" data-height="415" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*rRlAWnRIFf2Ti_bIXzMFSg.gif"></div></figure><h3 name="8453" id="8453" class="graf graf--h3 graf-after--figure graf--title">🌟 Introducing Dash 🌟</h3><h3 name="a715" id="a715" class="graf graf--h3 graf-after--h3 graf--trailing">Create Reactive Web Apps in pure Python</h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/introducing-dash-5ecf7191b503?source=collection_archive---------0-----------------------" data-action="open-post" data-action-source="collection_archive---------0-----------------------" data-action-value="https://medium.com/plotly/introducing-dash-5ecf7191b503?source=collection_archive---------0-----------------------" data-post-id="5ecf7191b503">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="5ecf7191b503" data-is-flush-left="true" data-source="listing-----5ecf7191b503---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/5ecf7191b503" data-action-source="listing-----5ecf7191b503---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="5ecf7191b503">7.3K</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/introducing-dash-5ecf7191b503?source=collection_archive---------0-----------------------#--responses" data-action-source="collection_archive---------0-----------------------">22 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="5ecf7191b503"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="808df010143d" data-source="collection_archive---------1-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@plotlygraphs" data-action="show-user-card" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*kX7ORGMwq0fhYPlE-qeOoQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Plotly"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@plotlygraphs?source=collection_archive---------1-----------------------" data-action="show-user-card" data-action-source="collection_archive---------1-----------------------" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto">Plotly</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------1-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------1-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/introducing-plotly-express-808df010143d?source=collection_archive---------1-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/introducing-plotly-express-808df010143d?source=collection_archive---------1-----------------------" data-action-source="preview-listing" ><time datetime="2019-03-20T15:37:04.005Z">Mar 20, 2019</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="11 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/introducing-plotly-express-808df010143d?source=collection_archive---------1-----------------------" data-action-source="collection_archive---------1-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*ZEoOGCkFaCA7L0Uv1P2xjg.gif" data-width="1015" data-height="663" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*ZEoOGCkFaCA7L0Uv1P2xjg.gif"></div></figure><h3 name="03a5" id="03a5" class="graf graf--h3 graf-after--figure graf--title">✨ Introducing Plotly Express ✨</h3><p name="af73" id="af73" class="graf graf--p graf-after--h3 graf--trailing"><span class="markup--anchor markup--p-anchor" data-action="open-inner-link" data-action-value="https://plotly.github.io/plotly_express/">Plotly Express</span> is a new high-level Python visualization library: it’s a wrapper for <span class="markup--anchor markup--p-anchor" data-action="open-inner-link" data-action-value="https://plot.ly/python/">Plotly.py</span> that…</p></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/introducing-plotly-express-808df010143d?source=collection_archive---------1-----------------------" data-action="open-post" data-action-source="collection_archive---------1-----------------------" data-action-value="https://medium.com/plotly/introducing-plotly-express-808df010143d?source=collection_archive---------1-----------------------" data-post-id="808df010143d">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="808df010143d" data-is-flush-left="true" data-source="listing-----808df010143d---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/808df010143d" data-action-source="listing-----808df010143d---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="808df010143d">3.9K</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/introducing-plotly-express-808df010143d?source=collection_archive---------1-----------------------#--responses" data-action-source="collection_archive---------1-----------------------">29 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="808df010143d"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="811f1f57c02e" data-source="collection_archive---------2-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@plotlygraphs" data-action="show-user-card" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*kX7ORGMwq0fhYPlE-qeOoQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Plotly"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@plotlygraphs?source=collection_archive---------2-----------------------" data-action="show-user-card" data-action-source="collection_archive---------2-----------------------" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto">Plotly</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------2-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------2-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/introducing-jupyterdash-811f1f57c02e?source=collection_archive---------2-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/introducing-jupyterdash-811f1f57c02e?source=collection_archive---------2-----------------------" data-action-source="preview-listing" ><time datetime="2020-05-20T14:01:03.550Z">May 20, 2020</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/introducing-jupyterdash-811f1f57c02e?source=collection_archive---------2-----------------------" data-action-source="collection_archive---------2-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*rJt5clbrJ8AU_lhPjNPINA.png" data-width="1336" data-height="1055" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*rJt5clbrJ8AU_lhPjNPINA.png"></div></figure><h3 name="dc62" id="dc62" class="graf graf--h3 graf-after--figure graf--title">Introducing JupyterDash</h3><p name="621a" id="621a" class="graf graf--p graf-after--h3 graf--trailing">We’re excited to announce the release of <span class="markup--anchor markup--p-anchor" data-action="open-inner-link" data-action-value="https://github.com/plotly/jupyter-dash">JupyterDash</span>, our new library that makes it easy to build Dash apps from…</p></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/introducing-jupyterdash-811f1f57c02e?source=collection_archive---------2-----------------------" data-action="open-post" data-action-source="collection_archive---------2-----------------------" data-action-value="https://medium.com/plotly/introducing-jupyterdash-811f1f57c02e?source=collection_archive---------2-----------------------" data-post-id="811f1f57c02e">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="811f1f57c02e" data-is-flush-left="true" data-source="listing-----811f1f57c02e---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/811f1f57c02e" data-action-source="listing-----811f1f57c02e---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="811f1f57c02e">1.2K</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/introducing-jupyterdash-811f1f57c02e?source=collection_archive---------2-----------------------#--responses" data-action-source="collection_archive---------2-----------------------">8 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="811f1f57c02e"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="fc444e5659ee" data-source="collection_archive---------3-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@plotlygraphs" data-action="show-user-card" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*kX7ORGMwq0fhYPlE-qeOoQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Plotly"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@plotlygraphs?source=collection_archive---------3-----------------------" data-action="show-user-card" data-action-source="collection_archive---------3-----------------------" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto">Plotly</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------3-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------3-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere-fc444e5659ee?source=collection_archive---------3-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere-fc444e5659ee?source=collection_archive---------3-----------------------" data-action-source="preview-listing" ><time datetime="2019-07-22T18:02:04.176Z">Jul 22, 2019</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="9 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere-fc444e5659ee?source=collection_archive---------3-----------------------" data-action-source="collection_archive---------3-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*IB-4Kx1B5kQY9uAx-3xG0A.gif" data-width="1015" data-height="663" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*IB-4Kx1B5kQY9uAx-3xG0A.gif"></div></figure><h3 name="93b2" id="93b2" class="graf graf--h3 graf-after--figure graf--trailing graf--title">Plotly.py 4.0 is here: Offline Only, Express First, Displayable Anywhere</h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere-fc444e5659ee?source=collection_archive---------3-----------------------" data-action="open-post" data-action-source="collection_archive---------3-----------------------" data-action-value="https://medium.com/plotly/plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere-fc444e5659ee?source=collection_archive---------3-----------------------" data-post-id="fc444e5659ee">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="fc444e5659ee" data-is-flush-left="true" data-source="listing-----fc444e5659ee---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/fc444e5659ee" data-action-source="listing-----fc444e5659ee---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="fc444e5659ee">1.1K</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere-fc444e5659ee?source=collection_archive---------3-----------------------#--responses" data-action-source="collection_archive---------3-----------------------">6 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="fc444e5659ee"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="3057b9ee8616" data-source="collection_archive---------4-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@plotlygraphs" data-action="show-user-card" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*kX7ORGMwq0fhYPlE-qeOoQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Plotly"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@plotlygraphs?source=collection_archive---------4-----------------------" data-action="show-user-card" data-action-source="collection_archive---------4-----------------------" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto">Plotly</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------4-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------4-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/4-interactive-sankey-diagram-made-in-python-3057b9ee8616?source=collection_archive---------4-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/4-interactive-sankey-diagram-made-in-python-3057b9ee8616?source=collection_archive---------4-----------------------" data-action-source="preview-listing" ><time datetime="2017-09-19T03:00:02.117Z">Sep 18, 2017</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="3 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/4-interactive-sankey-diagram-made-in-python-3057b9ee8616?source=collection_archive---------4-----------------------" data-action-source="collection_archive---------4-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*uINwB6NrzWtncnbf2T-wyg.png" data-width="843" data-height="695" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*uINwB6NrzWtncnbf2T-wyg.png"></div></figure><h3 name="73d6" id="73d6" class="graf graf--h3 graf-after--figure graf--title">4 interactive Sankey diagrams made in Python</h3><p name="8e32" id="8e32" class="graf graf--p graf-after--h3 graf--trailing">Plotly has a new member of the Plotly.js chart family: The Sankey diagram. Allow…</p></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/4-interactive-sankey-diagram-made-in-python-3057b9ee8616?source=collection_archive---------4-----------------------" data-action="open-post" data-action-source="collection_archive---------4-----------------------" data-action-value="https://medium.com/plotly/4-interactive-sankey-diagram-made-in-python-3057b9ee8616?source=collection_archive---------4-----------------------" data-post-id="3057b9ee8616">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="3057b9ee8616" data-is-flush-left="true" data-source="listing-----3057b9ee8616---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/3057b9ee8616" data-action-source="listing-----3057b9ee8616---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="3057b9ee8616">772</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/4-interactive-sankey-diagram-made-in-python-3057b9ee8616?source=collection_archive---------4-----------------------#--responses" data-action-source="collection_archive---------4-----------------------">3 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="3057b9ee8616"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="7bb1333f69c6" data-source="collection_archive---------5-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@plotlygraphs" data-action="show-user-card" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*kX7ORGMwq0fhYPlE-qeOoQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Plotly"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@plotlygraphs?source=collection_archive---------5-----------------------" data-action="show-user-card" data-action-source="collection_archive---------5-----------------------" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto">Plotly</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------5-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------5-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/introducing-plotly-py-3-0-0-7bb1333f69c6?source=collection_archive---------5-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/introducing-plotly-py-3-0-0-7bb1333f69c6?source=collection_archive---------5-----------------------" data-action-source="preview-listing" ><time datetime="2018-06-28T16:01:59.291Z">Jun 28, 2018</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="12 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/introducing-plotly-py-3-0-0-7bb1333f69c6?source=collection_archive---------5-----------------------" data-action-source="collection_archive---------5-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*uc9OAErv4kydfJnkK31h-A.gif" data-width="1358" data-height="684" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*uc9OAErv4kydfJnkK31h-A.gif"></div></figure><h3 name="6c66" id="6c66" class="graf graf--h3 graf-after--figure graf--title">🌟 Introducing plotly.py 3.0.0 🌟</h3><p name="98f7" id="98f7" class="graf graf--p graf-after--h3 graf--trailing">TLDR; You can download and install <code class="markup--code markup--p-code">plotly.py 3.0.0</code> today with <code class="markup--code markup--p-code">pip install plotly</code> (or <code class="markup--code markup--p-code">pip install</code>…</p></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/introducing-plotly-py-3-0-0-7bb1333f69c6?source=collection_archive---------5-----------------------" data-action="open-post" data-action-source="collection_archive---------5-----------------------" data-action-value="https://medium.com/plotly/introducing-plotly-py-3-0-0-7bb1333f69c6?source=collection_archive---------5-----------------------" data-post-id="7bb1333f69c6">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="7bb1333f69c6" data-is-flush-left="true" data-source="listing-----7bb1333f69c6---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/7bb1333f69c6" data-action-source="listing-----7bb1333f69c6---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="7bb1333f69c6">2K</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/introducing-plotly-py-3-0-0-7bb1333f69c6?source=collection_archive---------5-----------------------#--responses" data-action-source="collection_archive---------5-----------------------">7 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="7bb1333f69c6"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="9ebfab168d5b" data-source="collection_archive---------6-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@_jphwang" data-action="show-user-card" data-action-value="964fe0870229" data-action-type="hover" data-user-id="964fe0870229" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/2*N9fq8hfQA-RlyGI29dvkbw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of JP Hwang"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@_jphwang?source=collection_archive---------6-----------------------" data-action="show-user-card" data-action-source="collection_archive---------6-----------------------" data-action-value="964fe0870229" data-action-type="hover" data-user-id="964fe0870229" dir="auto">JP Hwang</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------6-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------6-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/nlp-visualisations-for-clear-immediate-insights-into-text-data-and-outputs-9ebfab168d5b?source=collection_archive---------6-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/nlp-visualisations-for-clear-immediate-insights-into-text-data-and-outputs-9ebfab168d5b?source=collection_archive---------6-----------------------" data-action-source="preview-listing" ><time datetime="2020-03-30T16:37:04.161Z">Mar 30, 2020</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/nlp-visualisations-for-clear-immediate-insights-into-text-data-and-outputs-9ebfab168d5b?source=collection_archive---------6-----------------------" data-action-source="collection_archive---------6-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*DtMWUZtmiZTUPx2NcQfaZg.png" data-width="4092" data-height="1816" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*DtMWUZtmiZTUPx2NcQfaZg.png"></div></figure><h3 name="7e50" id="7e50" class="graf graf--h3 graf-after--figure graf--title">NLP visualizations for clear, immediate insights into text data and outputs</h3><h4 name="7d68" id="7d68" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">Using Plotly Express and…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/nlp-visualisations-for-clear-immediate-insights-into-text-data-and-outputs-9ebfab168d5b?source=collection_archive---------6-----------------------" data-action="open-post" data-action-source="collection_archive---------6-----------------------" data-action-value="https://medium.com/plotly/nlp-visualisations-for-clear-immediate-insights-into-text-data-and-outputs-9ebfab168d5b?source=collection_archive---------6-----------------------" data-post-id="9ebfab168d5b">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="9ebfab168d5b" data-is-flush-left="true" data-source="listing-----9ebfab168d5b---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/9ebfab168d5b" data-action-source="listing-----9ebfab168d5b---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="9ebfab168d5b">396</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/nlp-visualisations-for-clear-immediate-insights-into-text-data-and-outputs-9ebfab168d5b?source=collection_archive---------6-----------------------#--responses" data-action-source="collection_archive---------6-----------------------">3 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="9ebfab168d5b"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="a45c57bb2f3c" data-source="collection_archive---------7-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@lomskaya" data-action="show-user-card" data-action-value="253aa5c67081" data-action-type="hover" data-user-id="253aa5c67081" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*urgnEy4OIWd4N-7mf6iMgg.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Tanya Lomskaya"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@lomskaya?source=collection_archive---------7-----------------------" data-action="show-user-card" data-action-source="collection_archive---------7-----------------------" data-action-value="253aa5c67081" data-action-type="hover" data-user-id="253aa5c67081" dir="auto">Tanya Lomskaya</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------7-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------7-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/how-to-create-a-beautiful-interactive-dashboard-layout-in-python-with-plotly-dash-a45c57bb2f3c?source=collection_archive---------7-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/how-to-create-a-beautiful-interactive-dashboard-layout-in-python-with-plotly-dash-a45c57bb2f3c?source=collection_archive---------7-----------------------" data-action-source="preview-listing" ><time datetime="2024-04-19T18:04:57.101Z">Apr 19, 2024</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="19 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/how-to-create-a-beautiful-interactive-dashboard-layout-in-python-with-plotly-dash-a45c57bb2f3c?source=collection_archive---------7-----------------------" data-action-source="collection_archive---------7-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*PLHpPHlrfbGFWgh_nCgLWg.png" data-width="800" data-height="420" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*PLHpPHlrfbGFWgh_nCgLWg.png"></div></figure><h3 name="c138" id="c138" class="graf graf--h3 graf-after--figure graf--trailing graf--title"><strong class="markup--strong markup--h3-strong">How to create a beautiful, interactive dashboard layout in Python with Plotly Dash</strong></h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/how-to-create-a-beautiful-interactive-dashboard-layout-in-python-with-plotly-dash-a45c57bb2f3c?source=collection_archive---------7-----------------------" data-action="open-post" data-action-source="collection_archive---------7-----------------------" data-action-value="https://medium.com/plotly/how-to-create-a-beautiful-interactive-dashboard-layout-in-python-with-plotly-dash-a45c57bb2f3c?source=collection_archive---------7-----------------------" data-post-id="a45c57bb2f3c">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="a45c57bb2f3c" data-is-flush-left="true" data-source="listing-----a45c57bb2f3c---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/a45c57bb2f3c" data-action-source="listing-----a45c57bb2f3c---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="a45c57bb2f3c">778</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/how-to-create-a-beautiful-interactive-dashboard-layout-in-python-with-plotly-dash-a45c57bb2f3c?source=collection_archive---------7-----------------------#--responses" data-action-source="collection_archive---------7-----------------------">11 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="a45c57bb2f3c"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="c75822d1cc24" data-source="collection_archive---------8-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@plotlygraphs" data-action="show-user-card" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*kX7ORGMwq0fhYPlE-qeOoQ.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Plotly"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@plotlygraphs?source=collection_archive---------8-----------------------" data-action="show-user-card" data-action-source="collection_archive---------8-----------------------" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto">Plotly</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------8-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------8-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/dash-is-react-for-python-r-and-julia-c75822d1cc24?source=collection_archive---------8-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/dash-is-react-for-python-r-and-julia-c75822d1cc24?source=collection_archive---------8-----------------------" data-action-source="preview-listing" ><time datetime="2020-04-06T22:48:00.962Z">Apr 6, 2020</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/dash-is-react-for-python-r-and-julia-c75822d1cc24?source=collection_archive---------8-----------------------" data-action-source="collection_archive---------8-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*nANCp53k-xLP5HmUcsLebQ.png" data-width="2874" data-height="1612" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*nANCp53k-xLP5HmUcsLebQ.png"></div></figure><h3 name="previewTitle" id="previewTitle" class="graf graf--h3 graf-after--figure graf--title">Dash is React for Python, R, and Julia</h3><h4 name="previewSubtitle" id="previewSubtitle" class="graf graf--h4 graf-after--h3 graf--trailing graf--subtitle">Dash makes the richness and innovation of the React frontend…</h4></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/dash-is-react-for-python-r-and-julia-c75822d1cc24?source=collection_archive---------8-----------------------" data-action="open-post" data-action-source="collection_archive---------8-----------------------" data-action-value="https://medium.com/plotly/dash-is-react-for-python-r-and-julia-c75822d1cc24?source=collection_archive---------8-----------------------" data-post-id="c75822d1cc24">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="c75822d1cc24" data-is-flush-left="true" data-source="listing-----c75822d1cc24---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/c75822d1cc24" data-action-source="listing-----c75822d1cc24---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="c75822d1cc24">812</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/dash-is-react-for-python-r-and-julia-c75822d1cc24?source=collection_archive---------8-----------------------#--responses" data-action-source="collection_archive---------8-----------------------">2 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="c75822d1cc24"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div><div class="streamItem streamItem--postPreview js-streamItem"><div class="cardChromeless u-marginTop20 u-paddingTop10 u-paddingBottom15 u-paddingLeft20 u-paddingRight20"><div class="postArticle postArticle--short js-postArticle js-trackPostPresentation js-trackPostScrolls" data-post-id="9b104b2dc9f0" data-source="collection_archive---------9-----------------------"><div class="u-clearfix u-marginBottom15 u-paddingTop5"><div class="postMetaInline u-floatLeft u-sm-maxWidthFullWidth"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@jovan.veljanoski" data-action="show-user-card" data-action-value="3bd573100d67" data-action-type="hover" data-user-id="3bd573100d67" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/2*gTwAq1SkQ3mii7TYg4w_1w.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Jovan Veljanoski"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@jovan.veljanoski?source=collection_archive---------9-----------------------" data-action="show-user-card" data-action-source="collection_archive---------9-----------------------" data-action-value="3bd573100d67" data-action-type="hover" data-user-id="3bd573100d67" dir="auto">Jovan Veljanoski</a> in <a class="ds-link ds-link--styleSubtle link--darken link--accent u-accentColor--textNormal" href="https://medium.com/plotly?source=collection_archive---------9-----------------------" data-action="show-collection-card" data-action-source="collection_archive---------9-----------------------" data-action-value="plotly" data-action-type="hover">Plotly</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/plotly/interactive-and-scalable-dashboards-with-vaex-and-dash-9b104b2dc9f0?source=collection_archive---------9-----------------------" data-action="open-post" data-action-value="https://medium.com/plotly/interactive-and-scalable-dashboards-with-vaex-and-dash-9b104b2dc9f0?source=collection_archive---------9-----------------------" data-action-source="preview-listing" ><time datetime="2020-06-23T14:37:08.608Z">Jun 23, 2020</time></a><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="13 min read"></span></div></div></div></div></div><div><a class="" href="https://medium.com/plotly/interactive-and-scalable-dashboards-with-vaex-and-dash-9b104b2dc9f0?source=collection_archive---------9-----------------------" data-action-source="collection_archive---------9-----------------------"><div class="postArticle-content js-postField"><section class="section section--body section--first section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><figure name="previewImage" id="previewImage" class="graf graf--figure graf--layoutCroppedHeightPreview graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 30%;"></div><img class="graf-image" data-image-id="1*UE9fnamd7uQYXKAlojyajg.gif" data-width="1500" data-height="787" data-is-featured="true" src="https://cdn-images-1.medium.com/fit/t/1600/480/1*UE9fnamd7uQYXKAlojyajg.gif"></div></figure><h3 name="9c32" id="9c32" class="graf graf--h3 graf-after--figure graf--trailing graf--title">Interactive and scalable dashboards with Vaex and Dash</h3></div></div></section></div></a></div><div class="postArticle-readMore"><a class="button button--smaller button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/interactive-and-scalable-dashboards-with-vaex-and-dash-9b104b2dc9f0?source=collection_archive---------9-----------------------" data-action="open-post" data-action-source="collection_archive---------9-----------------------" data-action-value="https://medium.com/plotly/interactive-and-scalable-dashboards-with-vaex-and-dash-9b104b2dc9f0?source=collection_archive---------9-----------------------" data-post-id="9b104b2dc9f0">Read more…</a></div><div class="u-clearfix u-paddingTop10"><div class="u-floatLeft"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="9b104b2dc9f0" data-is-flush-left="true" data-source="listing-----9b104b2dc9f0---------------------clap_preview"><div class="u-relative u-foreground"><button class="button button--primary button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/9b104b2dc9f0" data-action-source="listing-----9b104b2dc9f0---------------------clap_preview" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.739 0l.761 2.966L13.261 0z"/><path d="M14.815 3.776l1.84-2.551-1.43-.471z"/><path d="M8.378 1.224l1.84 2.551L9.81.753z"/><path d="M20.382 21.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 01.66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 01.707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 00.624-.624L4.11 14.04l-1.75-1.75a.998.998 0 111.41-1.413l4.154 4.156a.44.44 0 00.624 0 .44.44 0 000-.624l-4.152-4.153-1.172-1.171a.998.998 0 010-1.41 1.018 1.018 0 011.41 0l1.172 1.17 4.153 4.152a.437.437 0 00.624 0 .442.442 0 000-.624L6.43 8.222a.988.988 0 01-.291-.705.99.99 0 01.29-.706 1 1 0 011.412 0l6.992 6.993a.443.443 0 00.71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 01.66-.16c.342.056.659.28.879.606L18.628 14c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM10.99 5.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 01-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 011.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 00-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 00-1.095-.562 1.776 1.776 0 00-.992.128l-2.636-2.636a1.883 1.883 0 00-2.658 0 1.862 1.862 0 00-.478.847 1.886 1.886 0 00-2.671-.012 1.867 1.867 0 00-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 000 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 000 2.659l.624.622a1.879 1.879 0 00-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 001.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"/></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--25px is-flushLeft"><svg class="svgIcon-use" width="25" height="25" ><g fill-rule="evenodd"><path d="M11.738 0l.762 2.966L13.262 0z"/><path d="M16.634 1.224l-1.432-.47-.408 3.022z"/><path d="M9.79.754l-1.431.47 1.84 2.552z"/><path d="M22.472 13.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 00-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 01-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"/><path d="M12.58 9.887c-.156-.83.096-1.569.692-2.142L10.78 5.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"/><path d="M15.812 9.04c-.218-.323-.539-.55-.88-.606a.814.814 0 00-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 11-.868.612L7.2 6.378a.986.986 0 10-1.395 1.395l4.401 4.403a.538.538 0 11-.762.762L5.046 8.54 3.802 7.295a.99.99 0 00-1.396 0 .981.981 0 000 1.394L3.647 9.93l4.402 4.403a.537.537 0 010 .761.535.535 0 01-.762 0L2.89 10.696a.992.992 0 00-1.399-.003.983.983 0 000 1.395l1.855 1.854 2.763 2.765a.538.538 0 01-.76.761l-2.765-2.764a.982.982 0 00-1.395 0 .989.989 0 000 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C19.74 19.8 20.271 17 18.62 13.982L15.812 9.04z"/></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-disablePointerEvents" data-action="show-recommends" data-action-value="9b104b2dc9f0">857</button></span></div></div><div class="buttonSet u-floatRight"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/plotly/interactive-and-scalable-dashboards-with-vaex-and-dash-9b104b2dc9f0?source=collection_archive---------9-----------------------#--responses" data-action-source="collection_archive---------9-----------------------">8 responses</a><button class="button button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" data-action="add-to-bookmarks" data-action-value="9b104b2dc9f0"><span class="js-remove-from-bookmarks u-hide"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" ><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 00.706.03L12.5 16.85l5.662 4.126c.205.183.52.17.708-.03a.5.5 0 00.118-.285H19V6z"/></svg></span></span><span class="js-add-to-bookmarks"><span class="svgIcon svgIcon--bookmarkAdd svgIcon--25px is-flushRight"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M18 2.5a.5.5 0 011 0V5h2.5a.5.5 0 010 1H19v2.5a.5.5 0 11-1 0V6h-2.5a.5.5 0 010-1H18V2.5z" fill="#292929"/><path d="M7 7a1 1 0 011-1h3.5a.5.5 0 000-1H8a2 2 0 00-2 2v14a.5.5 0 00.805.396L12.5 17l5.695 4.396A.5.5 0 0019 21v-8.5a.5.5 0 00-1 0v7.485l-5.195-4.012a.5.5 0 00-.61 0L7 19.985V7z" fill="#292929"/></svg></span></span></button></div></div></div></div></div></div><div class="u-marginTop30 u-marginBottom40 u-clearfix"></div><p class="u-marginBottom40 u-clearfix u-fontSize14 u-textColorDark">These were the top 10 stories published by Plotly; you can also dive into yearly archives: <a href="https://medium.com/plotly/archive/2015">2015</a>, <a href="https://medium.com/plotly/archive/2016">2016</a>, <a href="https://medium.com/plotly/archive/2017">2017</a>, <a href="https://medium.com/plotly/archive/2018">2018</a>, <a href="https://medium.com/plotly/archive/2019">2019</a>, <a href="https://medium.com/plotly/archive/2020">2020</a>, <a href="https://medium.com/plotly/archive/2021">2021</a>, <a href="https://medium.com/plotly/archive/2022">2022</a>, <a href="https://medium.com/plotly/archive/2023">2023</a>, <a href="https://medium.com/plotly/archive/2024">2024</a>, and <a href="https://medium.com/plotly/archive/2025">2025</a>.</p></div><div class="col u-xs-size12of12 u-size3of12 u-paddingRight0 u-paddingLeft50"><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">About</span></div></div></header><div class="u-paddingTop18 u-paddingBottom35"><div class="u-fontSize18 u-lineHeightTight">Plotly</div><div class="u-fontSize14 u-lineHeightBaseSans u-paddingTop15"><div class="u-textColorDark u-marginBottom15">Plotly is a data visualization company that makes it easy to build, test, and deploy beautiful interactive web apps, charts and graphs—in any programming language.</div><a class=" link--darken u-accentColor--textDarken link--accent u-accentColor--textNormal" href="https://medium.com/plotly/about">More information</a></div></div><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Tags</span></div></div></header><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/ai">AI</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/machine-learning">Machine Learning</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/dashboard">Dashboards</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/vaex">Vaex</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/dash">Dash</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/r-programming">R Programming</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/python">Python</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/julia">Julia</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/react">React</a></div><div class="u-sizeFull u-paddingTop10 u-paddingBottom10 u-borderBox"><a class="link u-baseColor--link u-fontSize14 u-verticalAlignTop js-tag" href="https://medium.com/plotly/tagged/data-visualization">Data Visualization</a></div><div class="u-marginTop30"><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Editors</span></div></div></header></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@plotlygraphs?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*kX7ORGMwq0fhYPlE-qeOoQ.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of Plotly"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@plotlygraphs" data-action="show-user-card" data-action-value="5fdd6522cd45" data-action-type="hover" data-user-id="5fdd6522cd45" dir="auto">Plotly</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@adamschroeder?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="bae24f18fd5b" data-action-type="hover" data-user-id="bae24f18fd5b" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*51SdGzGwAyF7UX1bn6jxrQ.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Adam Schroeder"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@adamschroeder" data-action="show-user-card" data-action-value="bae24f18fd5b" data-action-type="hover" data-user-id="bae24f18fd5b" dir="auto">Adam Schroeder</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@chriddyp?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="1a52c7a1d28b" data-action-type="hover" data-user-id="1a52c7a1d28b" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/2*SmrWRA-CRTY0Sz02pIHThg.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of Chris Parmer"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@chriddyp" data-action="show-user-card" data-action-value="1a52c7a1d28b" data-action-type="hover" data-user-id="1a52c7a1d28b" dir="auto">Chris Parmer</a></div></div><div class="u-marginTop30"><header class="heading heading--borderedBottom" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title">Writers</span></div></div></header><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@_jphwang?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="964fe0870229" data-action-type="hover" data-user-id="964fe0870229" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/2*N9fq8hfQA-RlyGI29dvkbw.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of JP Hwang"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@_jphwang" data-action="show-user-card" data-action-value="964fe0870229" data-action-type="hover" data-user-id="964fe0870229" dir="auto">JP Hwang</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@averyjs?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="b484af2f4651" data-action-type="hover" data-user-id="b484af2f4651" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/2*WTwQ9hc7qkq2UQ5dejwfig.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Avery Smith"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@averyjs" data-action="show-user-card" data-action-value="b484af2f4651" data-action-type="hover" data-user-id="b484af2f4651" dir="auto">Avery Smith</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@eb736?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="2a47dd64deaa" data-action-type="hover" data-user-id="2a47dd64deaa" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*aZol7tXEOmpQsvc8GIimGQ.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Emilie Burton"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@eb736" data-action="show-user-card" data-action-value="2a47dd64deaa" data-action-type="hover" data-user-id="2a47dd64deaa" dir="auto">Emilie Burton</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@hannah_4233?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="257d816a560d" data-action-type="hover" data-user-id="257d816a560d" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*7uwltHdOgtzsVHpOc0uFdQ.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Hannah Ker"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@hannah_4233" data-action="show-user-card" data-action-value="257d816a560d" data-action-type="hover" data-user-id="257d816a560d" dir="auto">Hannah Ker</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@overanalyze?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="13bce6a63d8f" data-action-type="hover" data-user-id="13bce6a63d8f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*RFLJDTrR6xtWkJB3" class="avatar-image avatar-image--smaller" alt="Go to the profile of Cody Austin Davis"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@overanalyze" data-action="show-user-card" data-action-value="13bce6a63d8f" data-action-type="hover" data-user-id="13bce6a63d8f" dir="auto">Cody Austin Davis</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@dave_83728?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="2e9cfd1c2510" data-action-type="hover" data-user-id="2e9cfd1c2510" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*JI2uOu9GEPfGOSD4zRTHjg.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of Dave Gibbon"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@dave_83728" data-action="show-user-card" data-action-value="2e9cfd1c2510" data-action-type="hover" data-user-id="2e9cfd1c2510" dir="auto">Dave Gibbon</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@sachin_lakeside?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="7dbbd6909e39" data-action-type="hover" data-user-id="7dbbd6909e39" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*U8MDV-2U1HmJpjQV" class="avatar-image avatar-image--smaller" alt="Go to the profile of Sachin Seth"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@sachin_lakeside" data-action="show-user-card" data-action-value="7dbbd6909e39" data-action-type="hover" data-user-id="7dbbd6909e39" dir="auto">Sachin Seth</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@lomskaya?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="253aa5c67081" data-action-type="hover" data-user-id="253aa5c67081" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*urgnEy4OIWd4N-7mf6iMgg.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of Tanya Lomskaya"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@lomskaya" data-action="show-user-card" data-action-value="253aa5c67081" data-action-type="hover" data-user-id="253aa5c67081" dir="auto">Tanya Lomskaya</a></div></div><div class="js-staff"><div class="u-flexCenter u-paddingBottom10 u-paddingTop10"><div class="u-marginRight10"><a class="link u-baseColor--link avatar" href="https://medium.com/@alex.kalish?source=collection-archive" data-action="show-user-card" data-action-source="collection-archive" data-action-value="cf0de75416e5" data-action-type="hover" data-user-id="cf0de75416e5" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/1*keiAaYKV4kDLRMFN7Z1-4A.png" class="avatar-image avatar-image--smaller" alt="Go to the profile of Alex Kalish"></a></div><a class="link link--darker link--darken u-accentColor--textDarken u-baseColor--link u-fontSize14 u-flex1" href="https://medium.com/@alex.kalish" data-action="show-user-card" data-action-value="cf0de75416e5" data-action-type="hover" data-user-id="cf0de75416e5" dir="auto">Alex Kalish</a></div></div></div></div></div><style class="js-collectionStyle"> .u-accentColor--borderLight {border-color: #1A8917 !important;} .u-accentColor--borderNormal {border-color: #1A8917 !important;} .u-accentColor--borderDark {border-color: #0F730C !important;} .u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #1A8917 !important;} .u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #1A8917 !important;} .u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #0F730C !important;} .u-accentColor--textNormal {color: #0F730C !important;} .u-accentColor--hoverTextNormal:hover {color: #0F730C !important;} .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #0F730C !important;} .u-accentColor--textDark {color: #0F730C !important;} .u-accentColor--backgroundLight {background-color: #1A8917 !important;} .u-accentColor--backgroundNormal {background-color: #1A8917 !important;} .u-accentColor--backgroundDark {background-color: #0F730C !important;} .u-accentColor--buttonDark {border-color: #0F730C !important; color: #0F730C !important;} .u-accentColor--buttonDark:hover {border-color: #0F730C !important;} .u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #0F730C !important; fill: #0F730C !important;} .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #1A8917 !important; color: #0F730C !important;} .u-accentColor--buttonNormal:hover {border-color: #0F730C !important;} .u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #1A8917 !important; fill: #1A8917 !important;} .u-accentColor--buttonNormal.button--filled .icon:before,.u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonDark.button--filled,.u-accentColor--buttonDark.button--withChrome.is-active,.u-accentColor--fillWhenActive.is-active {background-color: #0F730C !important; border-color: #0F730C !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #1A8917 !important; border-color: #1A8917 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .postArticle.is-withAccentColors .markup--user,.postArticle.is-withAccentColors .markup--query {color: #0F730C !important;} .u-accentColor--highlightFaint {background-color: rgba(232, 243, 232, 1) !important;} .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(163, 208, 162, 1) !important;} .postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(232, 243, 232, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(232, 243, 232, 1), rgba(232, 243, 232, 1));} .postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(209, 231, 209, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(209, 231, 209, 1), rgba(209, 231, 209, 1));} .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(163, 208, 162, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));} .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(163, 208, 162, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));} .postArticle.is-withAccentColors .markup--highlight {background-color: rgba(163, 208, 162, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));}</style><style class="js-collectionStyleConstant">.u-imageBgColor {background-color: rgba(0, 0, 0, 0.24705882352941178);} .u-imageSpectrum .u-baseColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconLight .svgIcon,.u-imageSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--iconNormal .svgIcon,.u-imageSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconDark .svgIcon,.u-imageSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDarker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important; color: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--buttonLight .icon:before,.u-imageSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark .icon:before,.u-imageSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal .icon:before,.u-imageSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonDark.button--filled,.u-imageSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--buttonNormal.button--filled,.u-imageSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--link {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .ui-h1,.u-imageSpectrum .ui-h2,.u-imageSpectrum .ui-h3,.u-imageSpectrum .ui-h4,.u-imageSpectrum .ui-brand1,.u-imageSpectrum .ui-brand2,.u-imageSpectrum .ui-captionStrong {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-body,.u-imageSpectrum .ui-caps {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-summary,.u-imageSpectrum .ui-caption {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconLight .svgIcon,.u-imageSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--iconNormal .svgIcon,.u-imageSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconDark .svgIcon,.u-imageSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark .icon:before,.u-imageSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonDark.button--filled,.u-imageSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-imageSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-imageSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .postArticle.is-withAccentColors .markup--user,.u-imageSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--highlightFaint {background-color: rgba(255, 255, 255, 0.2) !important;} .u-imageSpectrum .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(255, 255, 255, 0.6) !important;} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: rgba(255, 255, 255, 0.2) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: rgba(255, 255, 255, 0.4) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}.u-resetSpectrum .u-tintBgColor {background-color: rgba(255, 255, 255, 1) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%) !important;} .u-resetSpectrum .u-baseColor--borderLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderDark {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--iconLight .svgIcon,.u-resetSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconNormal .svgIcon,.u-resetSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconDark .svgIcon,.u-resetSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textNormal {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDarker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--backgroundLight {background-color: rgba(0, 0, 0, 0.09803921568627451) !important;} .u-resetSpectrum .u-baseColor--backgroundNormal {background-color: rgba(0, 0, 0, 0.2) !important;} .u-resetSpectrum .u-baseColor--backgroundDark {background-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight .icon:before,.u-resetSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark {border-color: rgba(0, 0, 0, 0.6) !important; color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--buttonDark .icon:before,.u-resetSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important; color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal .icon:before,.u-resetSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(0, 0, 0, 0.4980392156862745) !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark.button--filled,.u-resetSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2980392156862745) !important; border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--buttonNormal.button--filled,.u-resetSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2) !important; border-color: rgba(0, 0, 0, 0.2) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--link {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--darken:active {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--link.link--darker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .ui-h1,.u-resetSpectrum .ui-h2,.u-resetSpectrum .ui-h3,.u-resetSpectrum .ui-h4,.u-resetSpectrum .ui-brand1,.u-resetSpectrum .ui-brand2,.u-resetSpectrum .ui-captionStrong {color: rgba(0, 0, 0, 0.8) !important; fill: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .ui-body,.u-resetSpectrum .ui-caps {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .ui-summary,.u-resetSpectrum .ui-caption {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-accentColor--borderLight {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderNormal {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderDark {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconLight .svgIcon,.u-resetSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--iconNormal .svgIcon,.u-resetSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconDark .svgIcon,.u-resetSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textDark {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundLight {background-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundNormal {background-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundDark {background-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark {border-color: rgba(17, 128, 14, 1) !important; color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark .icon:before,.u-resetSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(15, 115, 12, 1) !important; fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(26, 137, 23, 1) !important; color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(17, 128, 14, 1) !important; fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark.button--filled,.u-resetSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-resetSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(15, 115, 12, 1) !important; border-color: rgba(15, 115, 12, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-resetSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(17, 128, 14, 1) !important; border-color: rgba(17, 128, 14, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .postArticle.is-withAccentColors .markup--user,.u-resetSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(17, 128, 14, 1) !important;}</style></div></div></div><div class="loadingBar"></div><script>// <![CDATA[ window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;} // ]]></script><script>// <![CDATA[ var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","buildLabel":"20250214-1839-root","currentUser":{"userId":"lo_1a61df7beb2d","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":true,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":true,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"writerProgramDistributionSettingOptedIn":false,"isSuspended":false,"collectionOnboardingSeen":0,"atsQualifiedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.8Tcu27LFq3PCOR9WxTangw.12.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.OeYcXrNwP1RO6In97YcKLQ.12.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.wCbOa67hZjl5Sam6zzVFnA.12.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.tTmySBFexDB1lciGURkN8g.12.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.a_EBqZVM6AyX_Kp1jlxGyQ.12.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.-oShrzSeUmNJS3K6rx04MA.12.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.P8k9CfZ1LzppHTJYwJD_Ig.12.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.9h8MreH1W2quy7BlStgo8w.12.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.BeGFKpJATbmOvbKtPqdULA.12.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.7zPJu_iPvZQ7WmBm5quNMw.12.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.JdLpnwrzm9Rc1drxpYremQ.12.js"},"previewConfig":{"weightThreshold":1,"weightImageParagraph":0.51,"weightIframeParagraph":0.8,"weightTextParagraph":0.08,"weightEmptyParagraph":0,"weightP":0.003,"weightH":0.005,"weightBq":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15},"productName":"Medium","supportsEdit":false,"termsUrl":"//policy.medium.com/medium-terms-of-service-9db0094a1e0f","textshotHost":"textshot.textshot-production.svc.cluster.local","transactionId":"1739786873266:93658979c15b","useragent":{"browser":"ie","family":"ie","os":"windows","version":7,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isWebView":false,"isFacebookWebView":false,"supportsProgressiveMedia":false,"supportsPromotedPosts":true,"isBot":false,"isNativeIphone":false,"supportsCssVariables":false,"supportsVideoSections":true,"emojiSupportLevel":1,"isSearchBot":false,"isSyndicationBot":false,"isNativeAndroid":false,"isNativeIos":false,"isSeoAuditBot":false,"isInternalApp":false,"supportsApplePay":false,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","android_enable_editor_new_publishing_flow":true,"android_enable_friend_links_creation":true,"android_enable_friend_links_postpage_banners":true,"android_enable_image_sharer":true,"android_enable_lists_v2":true,"android_enable_syntax_highlight":true,"android_enable_topic_portals":true,"android_rating_prompt_stories_read_threshold":2,"android_two_hour_refresh":true,"available_annual_plan":"2c754bcc2995","available_annual_premium_plan":"4a442ace1476","available_monthly_plan":"60e220181034","available_monthly_premium_plan":"12a660186432","browsable_stream_config_bucket":"curated-topics","can_receive_tips_v0":true,"can_send_tips_v0":true,"coronavirus_topic_recirc":true,"disable_partner_program_enrollment":true,"enable_abandoned_cart_promotion_email":true,"enable_abandoned_paywall_email_experiment":"control","enable_abandoned_paywall_promotion_email":true,"enable_android_dynamic_aspirational_paywall":true,"enable_android_dynamic_programming_paywall":true,"enable_android_miro_v2":true,"enable_android_offline_reading":true,"enable_android_verified_author":true,"enable_app_flirty_thirty":true,"enable_apple_sign_in":true,"enable_apple_webhook":true,"enable_aurora_pub_follower_page":true,"enable_author_cards":true,"enable_author_cards_byline":true,"enable_auto_follow_on_subscribe":true,"enable_automod":true,"enable_bg_post_post":true,"enable_boost_experiment":"control","enable_boost_nia_v01":true,"enable_braintree_apple_pay":true,"enable_braintree_client":true,"enable_braintree_google_pay":true,"enable_braintree_integration":true,"enable_braintree_paypal":true,"enable_braintree_trial_membership":true,"enable_braintree_webhook":true,"enable_branch_io":true,"enable_cache_less_following_feed":true,"enable_cancellation_discount_v1_1":true,"enable_cancellation_discount_v1_email":true,"enable_configure_pronouns":true,"enable_conversion_model_v2":"group_2","enable_conversion_ranker_v2":"control","enable_creator_welcome_email":true,"enable_deprecate_legacy_providers_v3":true,"enable_deviant_get_variant_flag_from_medium2":true,"enable_diversification_rex":true,"enable_engagement_service_publish_response":true,"enable_entities_to_follow_v2":true,"enable_eventstats_event_processing":true,"enable_footer_app_buttons":true,"enable_google_one_tap":true,"enable_google_webhook":true,"enable_group_gifting":true,"enable_hybrid_ranking_model":"experiment","enable_iceland_forced_android":true,"enable_import":true,"enable_intrinsic_automatic_actions":true,"enable_ios_autorefresh":true,"enable_ios_dynamic_paywall_aspiriational":true,"enable_ios_dynamic_paywall_programming":true,"enable_ios_easy_resubscribe":true,"enable_ios_offline_reading":true,"enable_legacy_feed_in_iceland":true,"enable_lite_archive_page":true,"enable_lite_continue_this_thread":true,"enable_lite_homepage":true,"enable_lite_response_markup":true,"enable_lite_server_upstream_deadlines":true,"enable_lo_homepage":"control","enable_maim_the_meter":true,"enable_marketing_emails":true,"enable_mastodon_avatar_upload":true,"enable_mastodon_for_members":true,"enable_mastodon_for_members_username_selection":true,"enable_medium2_kbfd":true,"enable_medium_com_canonical_urls":true,"enable_members_only_audio":true,"enable_ml_rank_rex_anno":true,"enable_moc_load_processor_all_recs_surfaces":true,"enable_moc_load_processor_c":true,"enable_moc_load_processor_first_story":true,"enable_new_manage_membership_flow":true,"enable_new_stripe_customers":true,"enable_newsletter_lo_flow_custom_domains":true,"enable_pill_based_home_feed":true,"enable_plans_page_branding":"control","enable_plans_page_branding_v2":"control","enable_plans_page_payment_form":"group_1","enable_post_bottom_responses":true,"enable_post_bottom_responses_input":true,"enable_post_bottom_responses_native":true,"enable_post_publish_permission_check":true,"enable_pp_country_expansion":true,"enable_pp_v4":true,"enable_pre_pp_v4":true,"enable_premium_tier":true,"enable_premium_tier_badge":true,"enable_pub_featuring":true,"enable_pub_featuring_post_page_label":true,"enable_pub_featuring_stats":true,"enable_ranker_v10":"control","enable_recaptcha_enterprise":true,"enable_recirc_model":true,"enable_recommended_publishers_query":true,"enable_rex_aggregator_v2":true,"enable_rex_new_push_notification_endpoint":true,"enable_rex_reading_history":true,"enable_rito_upstream_deadlines":true,"enable_seamless_social_sharing":true,"enable_see_pronouns":true,"enable_sharer_create_post_share_key":true,"enable_sharer_validate_post_share_key":true,"enable_simplified_digest_v2_b":true,"enable_speechify_ios":true,"enable_speechify_widget":true,"enable_sprig":true,"enable_starspace":true,"enable_susi_redesign_android":true,"enable_susi_redesign_ios":true,"enable_switch_plan_premium_tier":true,"enable_tag_recs":true,"enable_tick_landing_page":true,"enable_tipping_v0_android":true,"enable_tipping_v0_ios":true,"enable_tribute_landing_page":true,"enable_trust_service_recaptcha":true,"enable_update_explore_wtf":true,"enable_update_topic_portals_wtf":true,"enable_updated_pub_recs_ui":true,"enable_verifications_service":true,"enable_winback_promotion_email":true,"get_highlights_from_engagement":true,"glyph_font_set":"m2-unbound-source-serif-pro","goliath_externalsearch_enable_comment_deindexation":true,"ios_display_paywall_after_onboarding":true,"ios_enable_friend_links_creation":true,"ios_enable_friend_links_postpage_banners":true,"ios_enable_home_post_menu":true,"ios_enable_lock_responses":true,"ios_enable_verified_book_author":true,"ios_iceland_nux":true,"ios_in_app_free_trial":true,"ios_remove_twitter_onboarding_step":true,"ios_social_share_sheet":true,"limit_post_referrers":true,"limit_user_follows":true,"mobile_custom_app_icon":true,"num_post_bottom_responses_to_show":3,"onboarding_tags_from_top_views":true,"reader_fair_distribution_non_qp":true,"redefined_top_posts":true,"reengagement_notification_duration":3,"rex_generator_max_candidates":1000,"signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","skip_fs_cache_user_vals":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.12.ico"},"authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://MQ57UUUQZ2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"G-7JY7T788PK","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js","useDynamicCss":false,"faviconUrl":"https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","faviconImageId":"5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","fontSets":[{"id":8,"url":"https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2-unbound-source-serif-pro.css"},{"id":11,"url":"https://glyph.medium.com/css/m2-unbound-source-serif-pro.css"},{"id":9,"url":"https://glyph.medium.com/css/mkt.css"}],"glyphUrl":"https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email"],"connect":["public_profile","email"],"login":["public_profile","email"],"share":["public_profile","email"]}},"memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","isDoNotAuth":false,"buggle":{"videoUrl":"https://cdn-videos-1.medium.com","audioUrl":"https://cdn-audio-1.medium.com"},"referrerType":5,"partnerProgramEmail":"partnerprogram@medium.com","recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","countryCode":"SG","bypassMeter":false,"branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","paypal":{"clientMode":"production","oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com/redeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"}},"collectionConfig":{"mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"]},"bypassMeterWithShareKey":false,"recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","cdcMessaging":[{"text":"For more information on the novel coronavirus and Covid-19, visit ","href":"","type":"text","start":0,"end":0},{"text":"cdc.gov","href":"https://www.cdc.gov/coronavirus/2019-nCoV","type":"link","start":66,"end":73},{"text":".","href":"","type":"text","start":0,"end":0}],"braintree":{"merchantId":"m56f8fqpf7ngnrd4"},"diagnostics":{},"domain":"medium.com"} // ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.8Tcu27LFq3PCOR9WxTangw.12.js" async></script><script>// <![CDATA[ window["obvInit"]({"references":{"User":{"5fdd6522cd45":{"userId":"5fdd6522cd45","name":"Plotly","username":"plotlygraphs","createdAt":1402508988188,"imageId":"1*kX7ORGMwq0fhYPlE-qeOoQ.png","backgroundImageId":"1*93xJPdqku1YKE_uljZDhEw.png","bio":"The low-code framework for rapidly building interactive, scalable data apps in Python.","twitterScreenName":"plotlygraphs","allowNotes":1,"mediumMemberAt":1594924864000,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1602787907655,"hasCompletedProfile":false,"userDismissableFlags":[29,12,8,5,3,19,2,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"bae24f18fd5b":{"userId":"bae24f18fd5b","name":"Adam Schroeder","username":"adamschroeder","createdAt":1487769038316,"imageId":"1*51SdGzGwAyF7UX1bn6jxrQ.jpeg","backgroundImageId":"","bio":"Hello! I am the Community Manager at Plotly. Also the creator of the Charming Data YouTube channel.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1620077665429,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,41],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"1a52c7a1d28b":{"userId":"1a52c7a1d28b","name":"Chris Parmer","username":"chriddyp","createdAt":1442547310811,"imageId":"2*SmrWRA-CRTY0Sz02pIHThg.png","backgroundImageId":"","bio":"Cofounder & Chief Product Officer at @plotlygraphs. Most recently author of Dash.","twitterScreenName":"chriddyp","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Christopher Parmer","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-ca","type":"User"},"964fe0870229":{"userId":"964fe0870229","name":"JP Hwang","username":"_jphwang","createdAt":1570596261370,"imageId":"2*N9fq8hfQA-RlyGI29dvkbw.jpeg","backgroundImageId":"","bio":"Tech / Data science writer & educator; Python dev; sports analytics enthusiast. 🇦🇺 🐦: @_jphwang","twitterScreenName":"_jphwang","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1570609312247,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,29,12,9,8,5,3,35,2,18,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"b484af2f4651":{"userId":"b484af2f4651","name":"Avery Smith","username":"averyjs","createdAt":1510424213992,"imageId":"2*WTwQ9hc7qkq2UQ5dejwfig.jpeg","backgroundImageId":"","bio":"Helping others break into data science @ DataCareerJumpstart.com","twitterScreenName":"averydata","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1579748648737,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1613071229592,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,29,12,11,9,8,3,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"2a47dd64deaa":{"userId":"2a47dd64deaa","name":"Emilie Burton","username":"eb736","createdAt":1570921971574,"imageId":"1*aZol7tXEOmpQsvc8GIimGQ.jpeg","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1598877994010,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[12,2,21],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"257d816a560d":{"userId":"257d816a560d","name":"Hannah Ker","username":"hannah_4233","createdAt":1655925520164,"imageId":"1*7uwltHdOgtzsVHpOc0uFdQ.jpeg","backgroundImageId":"","bio":"Solutions Architect at Plotly","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,32,29,2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-ca","type":"User"},"13bce6a63d8f":{"userId":"13bce6a63d8f","name":"Cody Austin Davis","username":"overanalyze","createdAt":1537251791415,"imageId":"0*RFLJDTrR6xtWkJB3","backgroundImageId":"","bio":"Self proclaimed philosopher that likes to write about business, tech, philosophy, comedy, and art. I don't take life too seriously.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1538668555046,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1616468342538,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[12,2,18,1,9],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"2e9cfd1c2510":{"userId":"2e9cfd1c2510","name":"Dave Gibbon","username":"dave_83728","createdAt":1568332274632,"imageId":"1*JI2uOu9GEPfGOSD4zRTHjg.jpeg","backgroundImageId":"","bio":"Sr. Director — Strategic Accounts & Partnerships at Plotly","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1736448069758,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[29,30,2,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"7dbbd6909e39":{"userId":"7dbbd6909e39","name":"Sachin Seth","username":"sachin_lakeside","createdAt":1673300002005,"imageId":"0*U8MDV-2U1HmJpjQV","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1685202205000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1682607826387,"firstOpenedAndroidApp":1677867484586,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[50,29,30,33,49],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"253aa5c67081":{"userId":"253aa5c67081","name":"Tanya Lomskaya","username":"lomskaya","createdAt":1650393183043,"imageId":"1*urgnEy4OIWd4N-7mf6iMgg.png","backgroundImageId":"","bio":"Freelance Tableau/Plotly Dash developer github.com/lomska https://public.tableau.com/app/profile/lomska","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1732447144386,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1714693904145,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[48,50,29,19,2,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"ru-ru","type":"User"},"cf0de75416e5":{"userId":"cf0de75416e5","name":"Alex Kalish","username":"alex.kalish","createdAt":1689789255821,"imageId":"1*keiAaYKV4kDLRMFN7Z1-4A.png","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1710289379000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1689867414324,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[7],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"3bd573100d67":{"userId":"3bd573100d67","name":"Jovan Veljanoski","username":"jovan.veljanoski","createdAt":1513701141412,"imageId":"2*gTwAq1SkQ3mii7TYg4w_1w.jpeg","backgroundImageId":"","bio":"Just another data scientist | PhD Astrophysics | co-founder of vaex.io | https://www.linkedin.com/in/jovanvel/","twitterScreenName":"JovanVaex","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[32,29,12,8,5,21,30,2,1,33],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"}},"Collection":{"c8d304cbe76":{"id":"c8d304cbe76","name":"Plotly","slug":"plotly","tags":["DATA VISUALIZATION","DATA VISUALIZATION TOOLS","DATA SCIENCE"],"creatorId":"5fdd6522cd45","description":"Plotly is a data visualization company that makes it easy to build, test, and deploy beautiful interactive web apps, charts and graphs—in any programming language.","shortDescription":"Plotly is a data visualization company that makes it easy…","image":{"imageId":"1*4R9HdZXaBGLPD_xPoit7iA.png","filter":"","backgroundSize":"","originalWidth":825,"originalHeight":818,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":4041,"activeAt":1738259433858},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*BGP-bpgUuP8pmEZuMiGJAA.jpeg","filter":"","backgroundSize":"","originalWidth":600,"originalHeight":600,"strategy":"resample","height":0,"width":0},"twitterUsername":"plotlygraphs","facebookPageName":"Plotly","publicEmail":"marketing@plot.ly","sections":[{"type":2,"collectionHeaderMetadata":{"backgroundImage":{"id":"1*IkeGJXqyj4a9XwO5HsQOFw.jpeg","originalWidth":4271,"originalHeight":775},"logoImage":{"id":"1*Fi1JGbiqZid_c7VYcIFSkw@2x.png","originalWidth":455,"originalHeight":209,"alt":"Plotly"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[]}}],"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF1A8917","point":0},{"color":"#FF11800E","point":0.1},{"color":"#FF0F730C","point":0.2},{"color":"#FF095407","point":1}],"backgroundColor":"#FFFFFFFF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFFFFFFF","point":0},{"color":"#FFE8F3E8","point":0.1},{"color":"#FFE8F3E8","point":0.2},{"color":"#FFD1E7D1","point":0.6},{"color":"#FFA3D0A2","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF095407","point":0},{"color":"#FF0F730C","point":0.1},{"color":"#FF11800E","point":0.2},{"color":"#FF1A8917","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":4,"title":"People & Culture","url":"https://medium.com/plotly/people-culture/home","topicId":"79ea99091feb","source":"topicId"},{"type":3,"title":"About Plotly","url":"https://plotly.com/?utm_medium=Medium&utm_content=featurepage"}],"colorBehavior":1,"collectionFeatures":[30],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"backgroundImage":{"id":"1*IkeGJXqyj4a9XwO5HsQOFw.jpeg","originalWidth":4271,"originalHeight":775},"logoImage":{"id":"1*Fi1JGbiqZid_c7VYcIFSkw@2x.png","originalWidth":455,"originalHeight":209,"alt":"Plotly"},"alignment":2,"layout":5},"subscriberCount":4041,"tagline":"Plotly’s Dash puts AI & ML in the hands of business users","instagramUsername":"plotly","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"1*1Gb7Lf1O2-Xv4km35A6KcQ.jpeg","filter":"","backgroundSize":"","originalWidth":8000,"originalHeight":2862,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092819278,"type":"Collection"}},"Post":{"5ecf7191b503":{"id":"5ecf7191b503","versionId":"f7eb44ee402b","creatorId":"5fdd6522cd45","homeCollectionId":"c8d304cbe76","title":"🌟 Introducing Dash 🌟","detectedLanguage":"en","latestVersion":"f7eb44ee402b","latestPublishedVersion":"f7eb44ee402b","hasUnpublishedEdits":false,"latestRev":940,"createdAt":1497577575831,"updatedAt":1565189404553,"acceptedAt":0,"firstPublishedAt":1498056792308,"latestPublishedAt":1510858001580,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Create Reactive Web Apps in pure Python","postDisplay":{"coverless":true},"metaDescription":"Dash is a Python library for creating reactive, Web-based applications. It is open-source and MIT licensed."},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*rRlAWnRIFf2Ti_bIXzMFSg.gif","filter":"","backgroundSize":"","originalWidth":800,"originalHeight":415,"strategy":"resample","height":0,"width":0},"wordCount":2750,"imageCount":14,"readingTime":11.827358490566038,"subtitle":"Create Reactive Web Apps in pure Python","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":1814,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":372673,"metadata":{"postCount":372673,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"d3js","name":"D3js","postCount":1259,"metadata":{"postCount":1259,"coverImage":{"id":"0*NCWBP-mfC-99nT9E","originalWidth":2947,"originalHeight":2121,"isFeatured":true,"unsplashPhotoId":"qwtCeJ5cLYs"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":371165,"metadata":{"postCount":371165,"coverImage":{"id":"1*stJB7yH6GfpLKkvlH3K6YQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true}},"type":"Tag"},{"slug":"data-visualization","name":"Data Visualization","postCount":69830,"metadata":{"postCount":69830,"coverImage":{"id":"1*RqQZFF7kZSoFLjbLPQDSpw.jpeg","originalWidth":736,"originalHeight":370}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":22,"links":{"entries":[{"url":"http://react-component.github.io/slider/examples/range.html","alts":[],"httpStatus":200},{"url":"http://pandas.pydata.org","alts":[],"httpStatus":200},{"url":"https://plot.ly/r/","alts":[],"httpStatus":200},{"url":"https://plot.ly/products/on-premise/","alts":[],"httpStatus":200},{"url":"https://react.rocks/tag/DataTable","alts":[],"httpStatus":200},{"url":"https://plot.ly/products/consulting-and-oem/","alts":[],"httpStatus":200},{"url":"https://support.plot.ly/plans","alts":[],"httpStatus":200},{"url":"https://plot.ly/dash/gallery","alts":[],"httpStatus":200},{"url":"http://explorabl.es","alts":[],"httpStatus":200},{"url":"https://plot.ly/database-connectors/","alts":[],"httpStatus":200},{"url":"https://plot.ly/dash/plugins","alts":[],"httpStatus":200},{"url":"https://plot.ly/dash/","alts":[],"httpStatus":200},{"url":"https://plot.ly/~jackp/17610","alts":[],"httpStatus":200},{"url":"https://plot.ly/~jackp/17561","alts":[],"httpStatus":200},{"url":"https://plot.ly/dash","alts":[],"httpStatus":200},{"url":"https://github.com/plotly","alts":[],"httpStatus":200},{"url":"https://plot.ly/products/dash","alts":[],"httpStatus":200},{"url":"https://plot.ly","alts":[],"httpStatus":200},{"url":"https://codepen.io/chriddyp/pen/bWLwgP","alts":[],"httpStatus":200},{"url":"https://plot.ly/create","alts":[],"httpStatus":200},{"url":"https://gist.github.com/chriddyp/1a95f6582a5256db9847086232987bff","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash-renderer","alts":[],"httpStatus":200},{"url":"http://twitter.com/app","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash-components-archetype","alts":[],"httpStatus":200},{"url":"https://twitter.com/plotlygraphs","alts":[{"type":2,"url":"twitter://user?screen_name=plotlygraphs"},{"type":3,"url":"twitter://user?screen_name=plotlygraphs"}],"httpStatus":200},{"url":"https://github.com/plotly/dash-core-components","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash-html-components","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash-docs","alts":[],"httpStatus":200},{"url":"https://github.com/JedWatson/react-select","alts":[],"httpStatus":200},{"url":"https://gist.github.com/chriddyp/3d2454905d8f01886d651f207e2419f0","alts":[],"httpStatus":200},{"url":"http://worrydream.com/ClimateChange/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash","alts":[],"httpStatus":200},{"url":"http://worrydream.com/ClimateChange/#tools","alts":[],"httpStatus":200},{"url":"http://worrydream.com/ClimateChange/#media","alts":[],"httpStatus":200},{"url":"https://github.com/airbnb/react-dates","alts":[],"httpStatus":200},{"url":"https://www.bloomberg.com/news/articles/2013-04-18/faq-reinhart-rogoff-and-the-excel-error-that-changed-history","alts":[{"type":3,"url":"bloomberg://www.bloomberg.com/news/articles/2013-04-18/faq-reinhart-rogoff-and-the-excel-error-that-changed-history?utm_medium=applink&utm_source=facebook"}],"httpStatus":200},{"url":"https://github.com/plotly/plotly.js","alts":[],"httpStatus":200},{"url":"http://flask.pocoo.org","alts":[],"httpStatus":200},{"url":"https://twitter.com/chriddyp","alts":[],"httpStatus":200},{"url":"http://flask.pocoo.org/extensions/","alts":[],"httpStatus":200},{"url":"https://gist.github.com/chriddyp/9b2b3e8a6c67697279d3724dce5dab3c","alts":[],"httpStatus":200},{"url":"http://plot.ly/products/consulting-and-oem/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly-database-connector","alts":[],"httpStatus":200},{"url":"https://nteract.io","alts":[],"httpStatus":0}],"version":"0.3","generatedAt":1510858003790},"isLockedPreviewOnly":false,"metaDescription":"Dash is a Python library for creating reactive, Web-based applications. It is open-source and MIT licensed.","totalClapCount":7322,"sectionCount":6,"readingList":0,"topics":[{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"introducing-dash","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"introducing-dash-5ecf7191b503","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*rRlAWnRIFf2Ti_bIXzMFSg.gif","originalWidth":800,"originalHeight":415,"isFeatured":true}},{"name":"8453","type":3,"text":"🌟 Introducing Dash 🌟","markups":[],"alignment":1},{"name":"a715","type":3,"text":"Create Reactive Web Apps in pure Python","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Create Reactive Web Apps in pure Python"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"8453","type":3,"text":"🌟 Introducing Dash 🌟","markups":[]},{"name":"a715","type":3,"text":"Create Reactive Web Apps in pure Python","markups":[]},{"name":"212d","type":1,"text":"Dash is a Open Source Python library for creating reactive, Web-based applications. Dash started as a public proof-of-concept on GitHub 2 years ago. We kept this prototype online, but subsequent work on Dash occurred behind closed doors. We used feedback from private trials at banks, labs, and data science teams…","markups":[{"type":10,"start":560,"end":576},{"type":3,"start":0,"end":4,"href":"https://plot.ly/products/dash","title":"","rel":"noopener","anchorType":0},{"type":3,"start":637,"end":663,"href":"https://plot.ly/dash","title":"","rel":"noopener","anchorType":0},{"type":3,"start":672,"end":696,"href":"https://github.com/plotly/dash","title":"","rel":"noopener","anchorType":0},{"type":1,"start":344,"end":495}]}],"sections":[{"name":"1caa","startIndex":0}]},"isFullContent":false,"subtitle":"Create Reactive Web Apps in pure Python"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"808df010143d":{"id":"808df010143d","versionId":"caeb9b9ff2e1","creatorId":"5fdd6522cd45","homeCollectionId":"c8d304cbe76","title":"✨ Introducing Plotly Express ✨","detectedLanguage":"en","latestVersion":"caeb9b9ff2e1","latestPublishedVersion":"caeb9b9ff2e1","hasUnpublishedEdits":false,"latestRev":1138,"createdAt":1553049819714,"updatedAt":1639007508371,"acceptedAt":0,"firstPublishedAt":1553096224005,"latestPublishedAt":1575646633721,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Plotly Express is a new high-level Python visualization library: it’s wrapper for Plotly.py that exposes a simple syntax for complex…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*ZEoOGCkFaCA7L0Uv1P2xjg.gif","filter":"","backgroundSize":"","originalWidth":1015,"originalHeight":663,"strategy":"resample","height":0,"width":0},"wordCount":2219,"imageCount":20,"readingTime":10.123584905660378,"subtitle":"Plotly Express is a new high-level Python visualization library: it’s wrapper for Plotly.py that exposes a simple syntax for complex…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":883,"isBookmarked":false,"tags":[{"slug":"data-visualization","name":"Data Visualization","postCount":69830,"metadata":{"postCount":69830,"coverImage":{"id":"1*RqQZFF7kZSoFLjbLPQDSpw.jpeg","originalWidth":736,"originalHeight":370}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":29,"links":{"entries":[{"url":"https://seaborn.pydata.org/","alts":[],"httpStatus":200},{"url":"http://www.jeannicholashould.com/tidy-data-in-python.html","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/","alts":[],"httpStatus":200},{"url":"https://plotly.github.io/plotly_express/plotly_express/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python","alts":[],"httpStatus":200},{"url":"https://plotly.github.io/plotly_express/","alts":[],"httpStatus":200},{"url":"https://plotly.github.io/plotly_express/plotly_express/data/index.html","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Parallel_coordinates","alts":[],"httpStatus":200},{"url":"https://matplotlib.org/","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Local_regression","alts":[],"httpStatus":200},{"url":"https://plot.ly/javascript","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Ordinary_least_squares","alts":[],"httpStatus":200},{"url":"https://dash.plot.ly/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py/issues/new","alts":[],"httpStatus":200},{"url":"https://mybinder.org/v2/gh/plotly/plotly_express/gh-pages?filepath=walkthrough.ipynb","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash-px","alts":[],"httpStatus":200},{"url":"https://twitter.com/plotlygraphs","alts":[{"type":2,"url":"twitter://user?screen_name=plotlygraphs"},{"type":3,"url":"twitter://user?screen_name=plotlygraphs"}],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py/tree/master/packages/python/plotly/plotly/express","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=zR7G2tNVo1Q","alts":[],"httpStatus":429},{"url":"https://www.gapminder.org/tools/#$state$time$value=2007;;&chart-type=bubbles","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py","alts":[],"httpStatus":200},{"url":"https://www.jasondavies.com/parallel-sets/","alts":[],"httpStatus":200},{"url":"https://community.plot.ly/","alts":[],"httpStatus":200},{"url":"https://towardsdatascience.com/a-comprehensive-guide-to-the-grammar-of-graphics-for-effective-visualization-of-multi-dimensional-1f92b4ed4149","alts":[{"type":3,"url":"medium://p/1f92b4ed4149"},{"type":2,"url":"medium://p/1f92b4ed4149"}],"httpStatus":200},{"url":"https://medium.com/@plotlygraphs/introducing-plotly-py-3-0-0-7bb1333f69c6","alts":[{"type":3,"url":"medium://p/7bb1333f69c6"},{"type":2,"url":"medium://p/7bb1333f69c6"}],"httpStatus":200},{"url":"https://medium.com/plotly/plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere-fc444e5659ee","alts":[{"type":3,"url":"medium://p/fc444e5659ee"},{"type":2,"url":"medium://p/fc444e5659ee"}],"httpStatus":200},{"url":"https://medium.com/@plotlygraphs/what-is-a-splom-chart-make-scatterplot-matrices-in-python-8dc4998921c3","alts":[{"type":3,"url":"medium://p/8dc4998921c3"},{"type":2,"url":"medium://p/8dc4998921c3"}],"httpStatus":200},{"url":"https://medium.com/@plotlygraphs/introducing-plotly-py-theming-b644109ac9c7","alts":[{"type":2,"url":"medium://p/b644109ac9c7"},{"type":3,"url":"medium://p/b644109ac9c7"}],"httpStatus":200},{"url":"https://medium.com/@plotlygraphs/plotly-py-end-of-summer-updates-5422c98b9058","alts":[{"type":2,"url":"medium://p/5422c98b9058"},{"type":3,"url":"medium://p/5422c98b9058"}],"httpStatus":200},{"url":"https://nbviewer.jupyter.org/github/plotly/plotly_express/blob/gh-pages/walkthrough.ipynb","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1575646640630},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":3904,"sectionCount":1,"readingList":0,"topics":[{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"introducing-plotly-express","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"introducing-plotly-express-808df010143d","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*ZEoOGCkFaCA7L0Uv1P2xjg.gif","originalWidth":1015,"originalHeight":663,"isFeatured":true}},{"name":"03a5","type":3,"text":"✨ Introducing Plotly Express ✨","markups":[],"alignment":1},{"name":"af73","type":1,"text":"Plotly Express is a new high-level Python visualization library: it’s a wrapper for Plotly.py that…","markups":[{"type":3,"start":0,"end":14,"href":"https://plotly.github.io/plotly_express/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":84,"end":93,"href":"https://plot.ly/python/","title":"","rel":"noopener","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Plotly Express is a new high-level Python visualization library: it’s wrapper for Plotly.py that exposes a simple syntax for complex…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"03a5","type":3,"text":"✨ Introducing Plotly Express ✨","markups":[]},{"name":"af73","type":1,"text":"Plotly Express is a new high-level Python visualization library: it’s a wrapper for Plotly.py that exposes a simple syntax for complex charts. Inspired by Seaborn and ggplot2, it was specifically designed to have a terse, consistent and easy-to-learn API: with just a single import, you can make richly interactive plots…","markups":[{"type":3,"start":0,"end":14,"href":"https://plotly.github.io/plotly_express/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":84,"end":93,"href":"https://plot.ly/python/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":734,"end":738,"href":"https://dash.plot.ly/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":791,"end":801,"href":"https://medium.com/@plotlygraphs/plotly-py-end-of-summer-updates-5422c98b9058","title":"","rel":"","anchorType":0},{"type":3,"start":834,"end":857,"href":"https://www.youtube.com/watch?v=zR7G2tNVo1Q","title":"","rel":"noopener","anchorType":0},{"type":2,"start":508,"end":520}]}],"sections":[{"name":"c144","startIndex":0}]},"isFullContent":false,"subtitle":"Plotly Express is a new high-level Python visualization library: it’s wrapper for Plotly.py that exposes a simple syntax for complex…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"811f1f57c02e":{"id":"811f1f57c02e","versionId":"2e5a89fc5301","creatorId":"5fdd6522cd45","homeCollectionId":"c8d304cbe76","title":"Introducing JupyterDash","detectedLanguage":"en","latestVersion":"2e5a89fc5301","latestPublishedVersion":"2e5a89fc5301","hasUnpublishedEdits":false,"latestRev":796,"createdAt":1589628317404,"updatedAt":1639492844390,"acceptedAt":0,"firstPublishedAt":1589983263550,"latestPublishedAt":1589985070033,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"We’re excited to announce the release of JupyterDash, our new library that makes it easy to build Dash apps from Jupyter environments (e.g…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*rJt5clbrJ8AU_lhPjNPINA.png","filter":"","backgroundSize":"","originalWidth":1336,"originalHeight":1055,"strategy":"resample","height":0,"width":0},"wordCount":1315,"imageCount":8,"readingTime":6.095597484276729,"subtitle":"We’re excited to announce the release of JupyterDash, our new library that makes it easy to build Dash apps from Jupyter environments (e.g…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":359,"isBookmarked":false,"tags":[{"slug":"jupyter","name":"Jupyter","postCount":1320,"metadata":{"postCount":1320,"coverImage":{"id":"1*CwFKtSDFtLgIL-4qZiyVHg.png","originalWidth":2024,"originalHeight":1212,"isFeatured":true}},"type":"Tag"},{"slug":"jupyterlab","name":"Jupyterlab","postCount":373,"metadata":{"postCount":373,"coverImage":{"id":"1*X4bZbN5zydCMu6AJV3bP7A.gif","originalWidth":1019,"originalHeight":674,"isFeatured":true}},"type":"Tag"},{"slug":"plotly","name":"Plotly","postCount":1991,"metadata":{"postCount":1991,"coverImage":{"id":"1*hwWPscF-lhvXz-DxBBk6bQ.png","originalWidth":700,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"dash","name":"Dash","postCount":2926,"metadata":{"postCount":2926,"coverImage":{"id":"1*TXw77eLYN9x81K77mip6IQ.jpeg","originalWidth":716,"originalHeight":331,"isFeatured":true}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":8,"links":{"entries":[{"url":"https://dash.plotly.com/devtools","alts":[],"httpStatus":200},{"url":"https://dashr.plotly.com","alts":[],"httpStatus":200},{"url":"https://jupyterlab.readthedocs.io/en/stable/","alts":[],"httpStatus":200},{"url":"https://code.visualstudio.com/docs/python/jupyter-support","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com","alts":[],"httpStatus":200},{"url":"https://plotly.com/get-demo/","alts":[],"httpStatus":200},{"url":"https://community.plotly.com/tag/announcements","alts":[],"httpStatus":200},{"url":"https://plotly.com/dash","alts":[],"httpStatus":200},{"url":"https://plotly.com/dash/workspaces/","alts":[],"httpStatus":200},{"url":"https://community.plotly.com/tag/show-and-tell","alts":[],"httpStatus":200},{"url":"https://www.jetbrains.com/help/pycharm/jupyter-notebook-support.html","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/jupyter-dash","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash.jl","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/basic-callbacks","alts":[],"httpStatus":200},{"url":"https://www.npmjs.com/package/jupyterlab-dash","alts":[],"httpStatus":200},{"url":"https://jupytext.readthedocs.io/en/latest/","alts":[],"httpStatus":200},{"url":"https://plotly.com/contact-us/","alts":[],"httpStatus":200},{"url":"https://plotly.com/dash/","alts":[],"httpStatus":200},{"url":"https://nteract.io/","alts":[],"httpStatus":200},{"url":"https://jupyter-server-proxy.readthedocs.io/en/latest/","alts":[],"httpStatus":200},{"url":"https://flask.palletsprojects.com/en/1.1.x/server/","alts":[],"httpStatus":200},{"url":"https://github.com/ralphbean/ansi2html/","alts":[],"httpStatus":200},{"url":"https://ipython.readthedocs.io/en/stable/api/generated/IPython.display.html#IPython.display.IFrame","alts":[],"httpStatus":200},{"url":"http://twitter.com/app","alts":[{"type":2,"url":"twitter://user?screen_name=app"},{"type":3,"url":"twitter://user?screen_name=app"}],"httpStatus":200},{"url":"https://mybinder.org/","alts":[],"httpStatus":200},{"url":"https://mybinder.org/v2/gh/plotly/jupyter-dash/master?urlpath=tree/notebooks/getting_started.ipynb","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash","alts":[],"httpStatus":200},{"url":"https://flask.palletsprojects.com/en/1.1.x/","alts":[],"httpStatus":200},{"url":"https://community.plotly.com/c/dash","alts":[],"httpStatus":200},{"url":"https://gunicorn.org/","alts":[],"httpStatus":200},{"url":"https://jupyter.org/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/jupyter-dash#jupyterlab-support","alts":[],"httpStatus":200},{"url":"https://wsgi.readthedocs.io/en/latest/what.html","alts":[],"httpStatus":200},{"url":"https://jupyter.org/hub","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1589985070203},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":1206,"sectionCount":1,"readingList":0,"topics":[{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"introducing-jupyterdash","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"introducing-jupyterdash-811f1f57c02e","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*rJt5clbrJ8AU_lhPjNPINA.png","originalWidth":1336,"originalHeight":1055,"isFeatured":true}},{"name":"dc62","type":3,"text":"Introducing JupyterDash","markups":[],"alignment":1},{"name":"621a","type":1,"text":"We’re excited to announce the release of JupyterDash, our new library that makes it easy to build Dash apps from…","markups":[{"type":3,"start":41,"end":52,"href":"https://github.com/plotly/jupyter-dash","title":"","rel":"","anchorType":0}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"We’re excited to announce the release of JupyterDash, our new library that makes it easy to build Dash apps from Jupyter environments (e.g…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"dc62","type":3,"text":"Introducing JupyterDash","markups":[]},{"name":"621a","type":1,"text":"We’re excited to announce the release of JupyterDash, our new library that makes it easy to build Dash apps from Jupyter environments (e.g. classic Notebook, JupyterLab, Visual Studio Code notebooks, nteract, PyCharm notebooks, etc.).","markups":[{"type":3,"start":41,"end":52,"href":"https://github.com/plotly/jupyter-dash","title":"","rel":"","anchorType":0},{"type":3,"start":140,"end":156,"href":"https://jupyter.org/","title":"","rel":"","anchorType":0},{"type":3,"start":158,"end":168,"href":"https://jupyterlab.readthedocs.io/en/stable/","title":"","rel":"","anchorType":0},{"type":3,"start":170,"end":198,"href":"https://code.visualstudio.com/docs/python/jupyter-support","title":"","rel":"","anchorType":0},{"type":3,"start":200,"end":207,"href":"https://nteract.io/","title":"","rel":"","anchorType":0},{"type":3,"start":209,"end":226,"href":"https://www.jetbrains.com/help/pycharm/jupyter-notebook-support.html","title":"","rel":"","anchorType":0}]},{"name":"5f12","type":1,"text":"Dash is Plotly’s open source Python (and R and Julia!) framework for building full stack analytic…","markups":[{"type":3,"start":0,"end":4,"href":"https://plotly.com/dash/","title":"","rel":"","anchorType":0},{"type":3,"start":17,"end":28,"href":"https://github.com/plotly/dash","title":"","rel":"","anchorType":0},{"type":3,"start":41,"end":42,"href":"https://dashr.plotly.com","title":"","rel":"","anchorType":0},{"type":3,"start":47,"end":52,"href":"https://github.com/plotly/dash.jl","title":"","rel":"","anchorType":0},{"type":3,"start":239,"end":252,"href":"https://dash.plotly.com/devtools","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"0227","startIndex":0}]},"isFullContent":false,"subtitle":"We’re excited to announce the release of JupyterDash, our new library that makes it easy to build Dash apps from Jupyter environments (e.g…"},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"fc444e5659ee":{"id":"fc444e5659ee","versionId":"5816401a3fa4","creatorId":"5fdd6522cd45","homeCollectionId":"c8d304cbe76","title":"Plotly.py 4.0 is here: Offline Only, Express First, Displayable Anywhere","detectedLanguage":"en","latestVersion":"5816401a3fa4","latestPublishedVersion":"5816401a3fa4","hasUnpublishedEdits":false,"latestRev":1336,"createdAt":1563553726587,"updatedAt":1639181939525,"acceptedAt":0,"firstPublishedAt":1563818524176,"latestPublishedAt":1565148985132,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Plotly.py is the library that powers graphs and maps for Dash. Version 4.0 of Plotly.py (also known as the plotlymodule) is now available…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*IB-4Kx1B5kQY9uAx-3xG0A.gif","filter":"","backgroundSize":"","originalWidth":1015,"originalHeight":663,"strategy":"resample","height":0,"width":0},"wordCount":1726,"imageCount":15,"readingTime":8.013207547169811,"subtitle":"Plotly.py is the library that powers graphs and maps for Dash. Version 4.0 of Plotly.py (also known as the plotlymodule) is now available…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":307,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":372673,"metadata":{"postCount":372673,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"data-visualization","name":"Data Visualization","postCount":69830,"metadata":{"postCount":69830,"coverImage":{"id":"1*RqQZFF7kZSoFLjbLPQDSpw.jpeg","originalWidth":736,"originalHeight":370}},"type":"Tag"},{"slug":"open-source","name":"Open Source","postCount":53132,"metadata":{"postCount":53132,"coverImage":{"id":"1*MU8r1brqC9EA5_cGSjmcsg.jpeg","originalWidth":682,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":6,"links":{"entries":[{"url":"https://pypi.org/project/plotly/","alts":[],"httpStatus":200},{"url":"https://sphinx-gallery.github.io/","alts":[],"httpStatus":200},{"url":"https://jupyterlab.readthedocs.io/en/stable/","alts":[],"httpStatus":200},{"url":"https://qtconsole.readthedocs.io/en/stable/","alts":[],"httpStatus":200},{"url":"https://www.spyder-ide.org/","alts":[],"httpStatus":200},{"url":"https://jupyter.org/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/getting-started/","alts":[],"httpStatus":200},{"url":"https://www.jeannicholashould.com/tidy-data-in-python.html","alts":[],"httpStatus":200},{"url":"https://www.kaggle.com/kernels","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/subplots/","alts":[],"httpStatus":200},{"url":"https://plot.ly/javascript/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/bar-charts/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/creating-and-updating-figures/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/renderers/","alts":[],"httpStatus":200},{"url":"https://medium.com/@plotlygraphs/introducing-plotly-express-808df010143d%2011","alts":[],"httpStatus":404},{"url":"https://plot.ly/python","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/figurewidget/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/v4-migration/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/facet-plots/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/templates/","alts":[],"httpStatus":200},{"url":"https://plot.ly/online-chart-maker/","alts":[],"httpStatus":200},{"url":"https://plot.ly/dash","alts":[],"httpStatus":200},{"url":"https://plotly.express/","alts":[],"httpStatus":200},{"url":"https://plotly.express","alts":[],"httpStatus":200},{"url":"https://code.visualstudio.com/docs/languages/python","alts":[],"httpStatus":200},{"url":"https://colab.research.google.com/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py/releases/tag/v4.0.0","alts":[],"httpStatus":200},{"url":"https://notebooks.azure.com/","alts":[],"httpStatus":200},{"url":"https://www.jetbrains.com/help/pycharm/jupyter-notebook-support.html","alts":[],"httpStatus":200},{"url":"https://medium.com/@plotlygraphs/what-is-a-splom-chart-make-scatterplot-matrices-in-python-8dc4998921c3","alts":[{"type":3,"url":"medium://p/8dc4998921c3"},{"type":2,"url":"medium://p/8dc4998921c3"}],"httpStatus":200},{"url":"https://nteract.io/","alts":[],"httpStatus":200},{"url":"https://medium.com/@plotlygraphs/introducing-plotly-py-theming-b644109ac9c7","alts":[{"type":2,"url":"medium://p/b644109ac9c7"},{"type":3,"url":"medium://p/b644109ac9c7"}],"httpStatus":200},{"url":"https://plot.ly/python/line-and-scatter/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py/pull/919#issuecomment-406232365","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1565148986710},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":1166,"sectionCount":1,"readingList":0,"topics":[{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"plotly-py-4-0-is-here-offline-only-express-first-displayable-anywhere-fc444e5659ee","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*IB-4Kx1B5kQY9uAx-3xG0A.gif","originalWidth":1015,"originalHeight":663,"isFeatured":true}},{"name":"93b2","type":3,"text":"Plotly.py 4.0 is here: Offline Only, Express First, Displayable Anywhere","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Plotly.py is the library that powers graphs and maps for Dash. Version 4.0 of Plotly.py (also known as the plotlymodule) is now available…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"93b2","type":3,"text":"Plotly.py 4.0 is here: Offline Only, Express First, Displayable Anywhere","markups":[]},{"name":"6bb2","type":1,"text":"Plotly.py is the library that powers graphs and maps for Dash. Version 4.0 of Plotly.py (also known as the plotly module) is now available for download from PyPI. It includes some exciting new features and changes, including a switch to “offline” mode by default, the inclusion of Plotly Express as…","markups":[{"type":10,"start":107,"end":113},{"type":3,"start":0,"end":9,"href":"https://plot.ly/python","title":"","rel":"noopener","anchorType":0},{"type":3,"start":57,"end":61,"href":"https://plot.ly/dash","title":"","rel":"noopener","anchorType":0},{"type":3,"start":143,"end":161,"href":"https://pypi.org/project/plotly/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":281,"end":295,"href":"https://plotly.express/","title":"","rel":"noopener","anchorType":0}]}],"sections":[{"name":"d35c","startIndex":0}]},"isFullContent":false,"subtitle":"Plotly.py is the library that powers graphs and maps for Dash. Version 4.0 of Plotly.py (also known as the plotlymodule) is now available…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"3057b9ee8616":{"id":"3057b9ee8616","versionId":"a1ba207d5aa3","creatorId":"5fdd6522cd45","homeCollectionId":"c8d304cbe76","title":"4 interactive Sankey diagrams made in Python","detectedLanguage":"en","latestVersion":"a1ba207d5aa3","latestPublishedVersion":"a1ba207d5aa3","hasUnpublishedEdits":false,"latestRev":783,"createdAt":1505783362691,"updatedAt":1565148781831,"acceptedAt":0,"firstPublishedAt":1505790002117,"latestPublishedAt":1505843305623,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Plotly has a new member of the Plotly.js chart family: The Sankey diagram. Allow us to introduce you:","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*uINwB6NrzWtncnbf2T-wyg.png","filter":"","backgroundSize":"","originalWidth":843,"originalHeight":695,"strategy":"resample","height":0,"width":0},"wordCount":458,"imageCount":3,"readingTime":2.2783018867924527,"subtitle":"Plotly has a new member of the Plotly.js chart family: The Sankey diagram. Allow us to introduce you:","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":181,"isBookmarked":false,"tags":[{"slug":"data-visualization","name":"Data Visualization","postCount":69830,"metadata":{"postCount":69830,"coverImage":{"id":"1*RqQZFF7kZSoFLjbLPQDSpw.jpeg","originalWidth":736,"originalHeight":370}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"physics","name":"Physics","postCount":28037,"metadata":{"postCount":28037,"coverImage":{"id":"1*6FvdOEgFE4fRYq-j6XzEEQ@2x.jpeg","originalWidth":3264,"originalHeight":2448,"backgroundSize":"","filter":"","isFeatured":false,"externalSrc":"","focusPercentX":-1,"focusPercentY":-1,"alt":"","repairedAt":0,"unsplashPhotoId":""}},"type":"Tag"},{"slug":"website-traffic","name":"Website Traffic","postCount":8179,"metadata":{"postCount":8179,"coverImage":{"id":"1*tjU1ubbTIlcNwKAFovFyDg.png","originalWidth":1500,"originalHeight":750,"isFeatured":true}},"type":"Tag"},{"slug":"d3js","name":"D3js","postCount":1259,"metadata":{"postCount":1259,"coverImage":{"id":"0*NCWBP-mfC-99nT9E","originalWidth":2947,"originalHeight":2121,"isFeatured":true,"unsplashPhotoId":"qwtCeJ5cLYs"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":3,"links":{"entries":[{"url":"https://bost.ocks.org/mike/sankey/","alts":[],"httpStatus":200},{"url":"https://plot.ly/python/sankey-diagram/","alts":[],"httpStatus":200},{"url":"https://plot.ly/r/sankey-diagram/","alts":[],"httpStatus":200},{"url":"https://plot.ly/javascript/sankey-diagram/","alts":[],"httpStatus":200},{"url":"https://plot.ly/~alishobeiri/1591/plotly-sankey-diagrams/","alts":[],"httpStatus":200},{"url":"http://www.bryanbrussee.com/sankey.html","alts":[],"httpStatus":200},{"url":"http://www.washingtonpost.com/sf/investigative/2014/06/20/when-drones-fall-from-the-sky/?utm_term=.cd4ce8bfbc0e","alts":[],"httpStatus":200},{"url":"https://plot.ly/~alishobeiri/1367.embed","alts":[],"httpStatus":200},{"url":"https://plot.ly/~alishobeiri/1573/scottish-referendum-voters-who-now-want-independence/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1505843305870},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":772,"sectionCount":2,"readingList":0,"topics":[]},"coverless":true,"slug":"4-interactive-sankey-diagram-made-in-python","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"4-interactive-sankey-diagram-made-in-python-3057b9ee8616","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*uINwB6NrzWtncnbf2T-wyg.png","originalWidth":843,"originalHeight":695,"isFeatured":true}},{"name":"73d6","type":3,"text":"4 interactive Sankey diagrams made in Python","markups":[],"alignment":1},{"name":"8e32","type":1,"text":"Plotly has a new member of the Plotly.js chart family: The Sankey diagram. Allow…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Plotly has a new member of the Plotly.js chart family: The Sankey diagram. Allow us to introduce you:"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"73d6","type":3,"text":"4 interactive Sankey diagrams made in Python","markups":[]},{"name":"8e32","type":1,"text":"Plotly has a new member of the Plotly.js chart family: The Sankey diagram. Allow us to introduce you:","markups":[]},{"name":"6e93","type":4,"text":"A Sankey diagram showing changing voter views. The Python code to make this chart is…","markups":[{"type":3,"start":111,"end":168,"href":"https://plot.ly/~alishobeiri/1591/plotly-sankey-diagrams/","title":"","rel":"nofollow","anchorType":0}],"layout":1,"metadata":{"id":"1*uINwB6NrzWtncnbf2T-wyg.png","originalWidth":843,"originalHeight":695,"isFeatured":true}},{"name":"0560","type":1,"text":"Sankey diagrams were invented to chart energy flows (such as through a steam engine). As an example, you might start with 100% of a fuel’s energy on the left side of the…","markups":[]}],"sections":[{"name":"102b","startIndex":0}]},"isFullContent":false,"subtitle":"Plotly has a new member of the Plotly.js chart family: The Sankey diagram. Allow us to introduce you:"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"7bb1333f69c6":{"id":"7bb1333f69c6","versionId":"28e3499dd688","creatorId":"5fdd6522cd45","homeCollectionId":"c8d304cbe76","title":"🌟 Introducing plotly.py 3.0.0 🌟","detectedLanguage":"en","latestVersion":"28e3499dd688","latestPublishedVersion":"28e3499dd688","hasUnpublishedEdits":false,"latestRev":2584,"createdAt":1528767163280,"updatedAt":1565145542216,"acceptedAt":0,"firstPublishedAt":1530201719291,"latestPublishedAt":1534884558020,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"TLDR; You can download and install plotly.py 3.0.0 today with pip install plotly (or pip install plotly --upgrade if you’ve installed the…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*uc9OAErv4kydfJnkK31h-A.gif","filter":"","backgroundSize":"","originalWidth":1358,"originalHeight":684,"strategy":"resample","height":0,"width":0},"wordCount":2552,"imageCount":13,"readingTime":11.030188679245283,"subtitle":"TLDR; You can download and install plotly.py 3.0.0 today with pip install plotly (or pip install plotly --upgrade if you’ve installed the…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":349,"isBookmarked":false,"tags":[{"slug":"data-visualization","name":"Data Visualization","postCount":69830,"metadata":{"postCount":69830,"coverImage":{"id":"1*RqQZFF7kZSoFLjbLPQDSpw.jpeg","originalWidth":736,"originalHeight":370}},"type":"Tag"},{"slug":"plotly","name":"Plotly","postCount":1991,"metadata":{"postCount":1991,"coverImage":{"id":"1*hwWPscF-lhvXz-DxBBk6bQ.png","originalWidth":700,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":372673,"metadata":{"postCount":372673,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"jupyter","name":"Jupyter","postCount":1320,"metadata":{"postCount":1320,"coverImage":{"id":"1*CwFKtSDFtLgIL-4qZiyVHg.png","originalWidth":2024,"originalHeight":1212,"isFeatured":true}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":7,"links":{"entries":[{"url":"http://conference.scipy.org/proceedings/scipy2018/jon_mease.html","alts":[],"httpStatus":200},{"url":"http://jupyter-notebook.readthedocs.io/en/stable/comms.html","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py/issues/new","alts":[],"httpStatus":200},{"url":"https://plot.ly","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/orca/graphs/contributors","alts":[],"httpStatus":200},{"url":"https://plot.ly/products/consulting-and-oem","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py/blob/master/migration-guide.md","alts":[],"httpStatus":200},{"url":"https://github.com/jupyter-widgets/ipywidgets/graphs/contributors","alts":[],"httpStatus":200},{"url":"https://github.com/jmmease/plotly_ipywidget_notebooks/blob/master/notebooks/DataShaderExample.ipynb","alts":[],"httpStatus":200},{"url":"https://twitter.com/plotlygraphs","alts":[{"type":2,"url":"twitter://user?screen_name=plotlygraphs"},{"type":3,"url":"twitter://user?screen_name=plotlygraphs"}],"httpStatus":200},{"url":"https://github.com/plotly/plotly.js/releases","alts":[],"httpStatus":200},{"url":"https://speakerdeck.com/jakevdp/pythons-visualization-landscape-pycon-2017?slide=36","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/orca","alts":[],"httpStatus":200},{"url":"https://github.com/jupyter-widgets/ipywidgets/blob/master/packages/schema/messages.md#widget-messaging-protocol-version-2","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash","alts":[],"httpStatus":200},{"url":"https://github.com/ropensci/plotly","alts":[],"httpStatus":200},{"url":"https://www.crowdcast.io/e/introducing-plotly-py-3?utm_source=profile&utm_medium=profile_web&utm_campaign=profile","alts":[],"httpStatus":200},{"url":"https://github.com/jonmmease/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py/issues","alts":[],"httpStatus":200},{"url":"https://scipy2018.scipy.org/ehome/299527/721463/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.js/pull/550","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py/pull/942","alts":[],"httpStatus":200},{"url":"https://github.com/jupyter-widgets/ipywidgets/pull/1194","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.js/pull/2258","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.js/pull/2388","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1534884562858},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":2064,"sectionCount":1,"readingList":0,"topics":[{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"introducing-plotly-py-3-0-0","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"introducing-plotly-py-3-0-0-7bb1333f69c6","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*uc9OAErv4kydfJnkK31h-A.gif","originalWidth":1358,"originalHeight":684,"isFeatured":true}},{"name":"6c66","type":3,"text":"🌟 Introducing plotly.py 3.0.0 🌟","markups":[],"alignment":1},{"name":"98f7","type":1,"text":"TLDR; You can download and install plotly.py 3.0.0 today with pip install plotly (or pip install…","markups":[{"type":10,"start":35,"end":50},{"type":10,"start":62,"end":80},{"type":10,"start":85,"end":96}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"TLDR; You can download and install plotly.py 3.0.0 today with pip install plotly (or pip install plotly --upgrade if you’ve installed the…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"6c66","type":3,"text":"🌟 Introducing plotly.py 3.0.0 🌟","markups":[]},{"name":"98f7","type":1,"text":"TLDR; You can download and install plotly.py 3.0.0 today with pip install plotly (or pip install plotly --upgrade if you’ve installed the Plotly Python library in the past).","markups":[{"type":10,"start":35,"end":50},{"type":10,"start":62,"end":80},{"type":10,"start":85,"end":113}]},{"name":"67b6","type":1,"text":"Last October, at our New York City Dash Workshops, an attendee showed us something really special. Jon Mease (@jonmmease), a data scientist…","markups":[{"type":3,"start":110,"end":120,"href":"https://github.com/jonmmease/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":250,"end":267,"href":"https://github.com/plotly/plotly.py/pull/942","title":"","rel":"noopener","anchorType":0}]}],"sections":[{"name":"de44","startIndex":0}]},"isFullContent":false,"subtitle":"TLDR; You can download and install plotly.py 3.0.0 today with pip install plotly (or pip install plotly --upgrade if you’ve installed the…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"9ebfab168d5b":{"id":"9ebfab168d5b","versionId":"102f133c0905","creatorId":"964fe0870229","homeCollectionId":"c8d304cbe76","title":"NLP visualisations for clear, immediate insights into text data and outputs","detectedLanguage":"en","latestVersion":"102f133c0905","latestPublishedVersion":"102f133c0905","hasUnpublishedEdits":false,"latestRev":3192,"createdAt":1584337034045,"updatedAt":1639442383136,"acceptedAt":0,"firstPublishedAt":1585586224161,"latestPublishedAt":1585586224161,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Using Plotly Express and Dash to explore data and present outputs in natural language processing (NLP) projects.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*DtMWUZtmiZTUPx2NcQfaZg.png","filter":"","backgroundSize":"","originalWidth":4092,"originalHeight":1816,"strategy":"resample","height":0,"width":0},"wordCount":1283,"imageCount":13,"readingTime":6.241509433962264,"subtitle":"Using Plotly Express and Dash to explore data and present outputs in natural language processing (NLP) projects.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":136,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":372673,"metadata":{"postCount":372673,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"programming","name":"Programming","postCount":476787,"metadata":{"postCount":476787,"coverImage":{"id":"1*uFbaWri2lJTX70PSGZGQeQ.png","originalWidth":1280,"originalHeight":720,"isFeatured":true}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":371165,"metadata":{"postCount":371165,"coverImage":{"id":"1*stJB7yH6GfpLKkvlH3K6YQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true}},"type":"Tag"},{"slug":"technology","name":"Technology","postCount":2329500,"metadata":{"postCount":2329500,"coverImage":{"id":"1*yH2cmH1uhoFpR7HIseOAsw.jpeg"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":3,"links":{"entries":[{"url":"https://www.consumerfinance.gov/data-research/consumer-complaints/","alts":[],"httpStatus":200},{"url":"https://dash-gallery.plotly.host/dash-nlp/","alts":[],"httpStatus":200},{"url":"https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash-sample-apps/tree/master/apps/dash-nlp","alts":[],"httpStatus":200},{"url":"https://plotly.com/get-demo/","alts":[],"httpStatus":200},{"url":"https://twitter.com/plotlygraphs","alts":[{"type":2,"url":"twitter://user?screen_name=plotlygraphs"},{"type":3,"url":"twitter://user?screen_name=plotlygraphs"}],"httpStatus":200},{"url":"https://plot.ly/dash/","alts":[],"httpStatus":200},{"url":"https://plotly.com/dash","alts":[],"httpStatus":200},{"url":"https://nlp.stanford.edu/projects/glove/","alts":[],"httpStatus":200},{"url":"https://medium.com/plotly/introducing-plotly-express-808df010143d","alts":[{"type":3,"url":"medium://p/808df010143d"},{"type":2,"url":"medium://p/808df010143d"}],"httpStatus":200}],"version":"0.3","generatedAt":1585586225020},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":396,"sectionCount":2,"readingList":0,"topics":[{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"nlp-visualisations-for-clear-immediate-insights-into-text-data-and-outputs","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"nlp-visualisations-for-clear-immediate-insights-into-text-data-and-outputs-9ebfab168d5b","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*DtMWUZtmiZTUPx2NcQfaZg.png","originalWidth":4092,"originalHeight":1816,"isFeatured":true}},{"name":"7e50","type":3,"text":"NLP visualizations for clear, immediate insights into text data and outputs","markups":[],"alignment":1},{"name":"7d68","type":13,"text":"Using Plotly Express and…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Using Plotly Express and Dash to explore data and present outputs in natural language processing (NLP) projects."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"7e50","type":3,"text":"NLP visualizations for clear, immediate insights into text data and outputs","markups":[]},{"name":"7d68","type":13,"text":"Using Plotly Express and Dash to explore data and present outputs in natural language processing (NLP) projects.","markups":[]},{"name":"91b8","type":4,"text":"Samples of NLP visualizations","markups":[],"layout":1,"metadata":{"id":"1*DtMWUZtmiZTUPx2NcQfaZg.png","originalWidth":4092,"originalHeight":1816,"isFeatured":true}},{"name":"238e","type":1,"text":"Extracting information from text remains a difficult, yet important challenge in the era of big data. Whether it comes to customer feedback, social media posts, or the news, the sheer volume of data to be analyzed can overwhelm information to be extracted.","markups":[]},{"name":"5a96","type":1,"text":"This is where modern natural language processing (NLP)…","markups":[]}],"sections":[{"name":"de9d","startIndex":0}]},"isFullContent":false,"subtitle":"Using Plotly Express and Dash to explore data and present outputs in natural language processing (NLP) projects."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"a45c57bb2f3c":{"id":"a45c57bb2f3c","versionId":"51f066937097","creatorId":"253aa5c67081","homeCollectionId":"c8d304cbe76","title":"How to create a beautiful, interactive dashboard layout in Python with Plotly Dash","detectedLanguage":"en","latestVersion":"51f066937097","latestPublishedVersion":"51f066937097","hasUnpublishedEdits":false,"latestRev":874,"createdAt":1711563992517,"updatedAt":1732798315154,"acceptedAt":0,"firstPublishedAt":1713549897101,"latestPublishedAt":1713968615351,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"When created in Python, a dashboard can have an impressive design, unique interactivity, and the highest processing speed. It sounds great…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*PLHpPHlrfbGFWgh_nCgLWg.png","filter":"","backgroundSize":"","originalWidth":800,"originalHeight":420,"strategy":"resample","height":0,"width":0},"wordCount":4626,"imageCount":12,"readingTime":18.806603773584907,"subtitle":"When created in Python, a dashboard can have an impressive design, unique interactivity, and the highest processing speed. It sounds great…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":288,"isBookmarked":false,"tags":[{"slug":"data-visualization","name":"Data Visualization","postCount":69830,"metadata":{"postCount":69830,"coverImage":{"id":"1*RqQZFF7kZSoFLjbLPQDSpw.jpeg","originalWidth":736,"originalHeight":370}},"type":"Tag"},{"slug":"plotly","name":"Plotly","postCount":1991,"metadata":{"postCount":1991,"coverImage":{"id":"1*hwWPscF-lhvXz-DxBBk6bQ.png","originalWidth":700,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"dash","name":"Dash","postCount":2926,"metadata":{"postCount":2926,"coverImage":{"id":"1*TXw77eLYN9x81K77mip6IQ.jpeg","originalWidth":716,"originalHeight":331,"isFeatured":true}},"type":"Tag"},{"slug":"dashboard-design","name":"Dashboard Design","postCount":1296,"metadata":{"postCount":1296,"coverImage":{"id":"1*wso-GdHpuT4sXNIuLZMhSw.png","originalWidth":1312,"originalHeight":733,"isFeatured":true}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":11,"links":{"entries":[{"url":"http://127.0.0.1:8050/","alts":[],"httpStatus":0},{"url":"https://fonts.google.com/?query=poppins","alts":[],"httpStatus":200},{"url":"https://bootswatch.com/flatly/","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/","alts":[],"httpStatus":200},{"url":"https://dash-bootstrap-components.opensource.faculty.ai/docs/themes/","alts":[],"httpStatus":200},{"url":"https://dash-bootstrap-components.opensource.faculty.ai/","alts":[],"httpStatus":200},{"url":"https://dash-bootstrap-components.opensource.faculty.ai/docs/components/button_group/","alts":[],"httpStatus":200},{"url":"https://codepen.io/","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/dash-html-components","alts":[],"httpStatus":200},{"url":"https://stackoverflow.com/","alts":[],"httpStatus":200},{"url":"https://plotly.com/python/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/datasets/tree/master/dash-layout-tutorial","alts":[],"httpStatus":200},{"url":"https://precious-trade-9495c0104c61.herokuapp.com/","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/dash-core-components/dropdown","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/dash-core-components","alts":[],"httpStatus":200},{"url":"https://dribbble.com/shots/popular/web-design","alts":[],"httpStatus":200},{"url":"https://community.plotly.com/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1713968616418},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":778,"sectionCount":2,"readingList":0,"topics":[{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"how-to-create-a-beautiful-interactive-dashboard-layout-in-python-with-plotly-dash","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"how-to-create-a-beautiful-interactive-dashboard-layout-in-python-with-plotly-dash-a45c57bb2f3c","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*PLHpPHlrfbGFWgh_nCgLWg.png","originalWidth":800,"originalHeight":420,"isFeatured":true}},{"name":"c138","type":3,"text":"How to create a beautiful, interactive dashboard layout in Python with Plotly Dash","markups":[{"type":1,"start":0,"end":82}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"When created in Python, a dashboard can have an impressive design, unique interactivity, and the highest processing speed. It sounds great…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":6,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"c138","type":3,"text":"How to create a beautiful, interactive dashboard layout in Python with Plotly Dash","markups":[{"type":1,"start":0,"end":82}]},{"name":"27b7","type":1,"text":"When created in Python, a dashboard can have an impressive design, unique interactivity, and the highest processing speed. It sounds great, but there is a caveat: the creation process is not so simple and is fraught with many pitfalls. This article focuses purely on the first step in dashboard creation…","markups":[]}],"sections":[{"name":"0186","startIndex":0}]},"isFullContent":false,"subtitle":"When created in Python, a dashboard can have an impressive design, unique interactivity, and the highest processing speed. It sounds great…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"c75822d1cc24":{"id":"c75822d1cc24","versionId":"cc6e34a08f4a","creatorId":"5fdd6522cd45","homeCollectionId":"c8d304cbe76","title":"Dash is React for Python, R, and Julia","detectedLanguage":"en","latestVersion":"cc6e34a08f4a","latestPublishedVersion":"cc6e34a08f4a","hasUnpublishedEdits":false,"latestRev":266,"createdAt":1586207877141,"updatedAt":1639449797783,"acceptedAt":0,"firstPublishedAt":1586213280962,"latestPublishedAt":1586291205079,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Dash makes the richness and innovation of the React frontend ecosystem available to Python, R, and Julia engineers for the first time.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*nANCp53k-xLP5HmUcsLebQ.png","filter":"","backgroundSize":"","originalWidth":2874,"originalHeight":1612,"strategy":"resample","height":0,"width":0},"wordCount":1616,"imageCount":4,"readingTime":6.79811320754717,"subtitle":"Dash makes the richness and innovation of the React frontend ecosystem available to Python, R, and Julia engineers for the first time.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":139,"isBookmarked":false,"tags":[{"slug":"data-visualization","name":"Data Visualization","postCount":69830,"metadata":{"postCount":69830,"coverImage":{"id":"1*RqQZFF7kZSoFLjbLPQDSpw.jpeg","originalWidth":736,"originalHeight":370}},"type":"Tag"},{"slug":"react","name":"React","postCount":113657,"metadata":{"postCount":113657,"coverImage":{"id":"0*vf5mFIQDqmm5MtFH","originalWidth":960,"originalHeight":540,"isFeatured":true}},"type":"Tag"},{"slug":"julia","name":"Julia","postCount":1464,"metadata":{"postCount":1464,"coverImage":{"id":"1*7OxRGXqbYvbFJugWgGqVqg.png","originalWidth":1280,"originalHeight":720,"isFeatured":true}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"r-programming","name":"R Programming","postCount":2758,"metadata":{"postCount":2758,"coverImage":{"id":"1*7DvABZcNfx1wWlteHPZpJg.jpeg","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":2,"links":{"entries":[{"url":"https://formidable.com","alts":[],"httpStatus":200},{"url":"https://reactjs.org/docs/glossary.html#single-page-application","alts":[],"httpStatus":200},{"url":"https://react-bootstrap.github.io","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/clientside-callbacks","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/dash-bio/molecule3dviewer","alts":[],"httpStatus":200},{"url":"https://www.npmjs.com/search?q=react","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/loading-states","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/urls","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/persistence","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/react-for-python-developers","alts":[],"httpStatus":200},{"url":"https://juliacomputing.com","alts":[],"httpStatus":200},{"url":"https://enterprisersproject.com/article/2020/3/kubernetes-best-practices-building-applications-containers?page=1","alts":[],"httpStatus":200},{"url":"https://dawnlabs.io","alts":[],"httpStatus":200},{"url":"https://plotly.com/resources/indelphi/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash/releases/tag/v1.5.1","alts":[],"httpStatus":200},{"url":"https://pypistats.org/packages/plotly","alts":[],"httpStatus":200},{"url":"https://plotly.com/get-demo/","alts":[],"httpStatus":200},{"url":"https://github.com/highcharts/highcharts-react","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash.jl","alts":[],"httpStatus":200},{"url":"https://github.com/facultyai/dash-bootstrap-components","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/react-pivottable","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/react-chart-editor","alts":[],"httpStatus":200},{"url":"https://medium.com/plotly/introducing-dash-5ecf7191b503","alts":[{"type":3,"url":"medium://p/5ecf7191b503"},{"type":2,"url":"medium://p/5ecf7191b503"}],"httpStatus":200},{"url":"https://github.com/plotly/dash-core-components","alts":[],"httpStatus":200},{"url":"https://github.com/ropensci/plotly","alts":[],"httpStatus":200},{"url":"https://github.com/Autodesk/molecule-3d-for-react","alts":[],"httpStatus":200},{"url":"https://plotly.com/consulting-and-oem/","alts":[],"httpStatus":200},{"url":"https://github.com/FormidableLabs/builder","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.js","alts":[],"httpStatus":200},{"url":"https://plotly.com/dash/","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/plotly.py","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/react-colorscales","alts":[],"httpStatus":200},{"url":"https://community.plotly.com/t/show-and-tell-dash-resumable-upload/9519/3","alts":[],"httpStatus":200},{"url":"https://plotly.com/dash/design-kit/","alts":[],"httpStatus":200},{"url":"https://community.plotly.com/t/dash-1-5-0-released/30622/5","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash-alternative-viz","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash/pull/1125","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash-daq","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash/pull/1103","alts":[],"httpStatus":200},{"url":"https://github.com/plotly/dash/pull/899","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1586291207422},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":812,"sectionCount":1,"readingList":0,"topics":[{"topicId":"63c6f1f93ee","slug":"javascript","createdAt":1493945704961,"deletedAt":0,"image":{"id":"1*5UyyDJ1ESD11yQNd1UVAaQ@2x.jpeg","originalWidth":5472,"originalHeight":3648},"name":"Javascript","description":"An ode to code.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Javascript News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"dash-is-react-for-python-r-and-julia","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"dash-is-react-for-python-r-and-julia-c75822d1cc24","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*nANCp53k-xLP5HmUcsLebQ.png","originalWidth":2874,"originalHeight":1612,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Dash is React for Python, R, and Julia","alignment":1},{"name":"previewSubtitle","type":13,"text":"Dash makes the richness and innovation of the React frontend…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Dash makes the richness and innovation of the React frontend ecosystem available to Python, R, and Julia engineers for the first time."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"c856","type":3,"text":"Dash is React for Python, R, and Julia","markups":[]},{"name":"e578","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*nANCp53k-xLP5HmUcsLebQ.png","originalWidth":2874,"originalHeight":1612,"isFeatured":true}},{"name":"f1cf","type":3,"text":"Dash Primordial Soup","markups":[{"type":1,"start":0,"end":20}]},{"name":"1538","type":1,"text":"When Plotly released Dash (almost 3 years ago), we were not certain that it would become the open-source phenomenon that Dash is today. Having 5 years of prior experience with plotly.js, plotly.R, and plotly.py — the world’s most downloaded, Web-based scientific graphing libraries for JavaScript, R, and Python (respectively) —…","markups":[{"type":3,"start":27,"end":45,"href":"https://medium.com/plotly/introducing-dash-5ecf7191b503","title":"","rel":"","anchorType":0},{"type":3,"start":176,"end":185,"href":"https://github.com/plotly/plotly.js","title":"","rel":"","anchorType":0},{"type":3,"start":187,"end":195,"href":"https://github.com/ropensci/plotly","title":"","rel":"","anchorType":0},{"type":3,"start":201,"end":210,"href":"https://github.com/plotly/plotly.py","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"7623","startIndex":0}]},"isFullContent":false,"subtitle":"Dash makes the richness and innovation of the React frontend ecosystem available to Python, R, and Julia engineers for the first time."},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"9b104b2dc9f0":{"id":"9b104b2dc9f0","versionId":"2e8495354814","creatorId":"3bd573100d67","homeCollectionId":"c8d304cbe76","title":"Interactive and scalable dashboards with Vaex and Dash","detectedLanguage":"en","latestVersion":"2e8495354814","latestPublishedVersion":"2e8495354814","hasUnpublishedEdits":false,"latestRev":3834,"createdAt":1588623165564,"updatedAt":1639526428592,"acceptedAt":0,"firstPublishedAt":1592923028608,"latestPublishedAt":1592923028608,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Learn how to build interactive, scalable dashboards with Dash and Vaex.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*UE9fnamd7uQYXKAlojyajg.gif","filter":"","backgroundSize":"","originalWidth":1500,"originalHeight":787,"strategy":"resample","height":0,"width":0},"wordCount":3094,"imageCount":3,"readingTime":12.225471698113209,"subtitle":"Learn how to build interactive, scalable dashboards with Dash and Vaex.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":324,"isBookmarked":false,"tags":[{"slug":"dash","name":"Dash","postCount":2926,"metadata":{"postCount":2926,"coverImage":{"id":"1*TXw77eLYN9x81K77mip6IQ.jpeg","originalWidth":716,"originalHeight":331,"isFeatured":true}},"type":"Tag"},{"slug":"vaex","name":"Vaex","postCount":25,"metadata":{"postCount":25,"coverImage":{"id":"1*CRRp4r5pFkh6Cn7bYcej6w.gif","originalWidth":1279,"originalHeight":1152,"isFeatured":true}},"type":"Tag"},{"slug":"dashboard","name":"Dashboards","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"0*DnS--dOIeQMCJ8yU.jpg","originalWidth":5061,"originalHeight":3374,"externalSrc":"http://cmxhub.com/wp-content/uploads/2016/01/UNB7V2H5L4.jpg"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":371165,"metadata":{"postCount":371165,"coverImage":{"id":"1*stJB7yH6GfpLKkvlH3K6YQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true}},"type":"Tag"},{"slug":"ai","name":"AI","postCount":481094,"metadata":{"postCount":481094,"coverImage":{"id":"1*uFbaWri2lJTX70PSGZGQeQ.png","originalWidth":1280,"originalHeight":720,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":8,"links":{"entries":[{"url":"https://pandas.pydata.org/","alts":[],"httpStatus":200},{"url":"https://docs.vaex.io/en/latest/tutorials.html","alts":[],"httpStatus":200},{"url":"https://reactjs.org/","alts":[],"httpStatus":200},{"url":"https://flask.palletsprojects.com","alts":[],"httpStatus":200},{"url":"http://www.nyc.gov/html/tlc/html/about/trip_record_data.shtml","alts":[],"httpStatus":200},{"url":"https://docs.vaex.io/en/latest/examples.html","alts":[],"httpStatus":200},{"url":"https://gist.github.com/JovanVeljanoski/f9f5136789888046a724ece3578af1aa","alts":[],"httpStatus":200},{"url":"https://plotly.com/python/","alts":[],"httpStatus":200},{"url":"https://plotly.com/javascript/","alts":[],"httpStatus":200},{"url":"https://vaex.io/","alts":[],"httpStatus":200},{"url":"https://plotly.com/python/sankey-diagram/","alts":[],"httpStatus":200},{"url":"https://plotly.com/python/sunburst-charts/","alts":[],"httpStatus":200},{"url":"https://dash.plotly.com/","alts":[],"httpStatus":200},{"url":"https://plotly.com/contact-us/","alts":[],"httpStatus":200},{"url":"http://dash.vaex.io/","alts":[],"httpStatus":200},{"url":"https://plotly.com/python/plotly-express/","alts":[],"httpStatus":200},{"url":"https://go.plotly.com/dash-vaex","alts":[],"httpStatus":200},{"url":"https://plotly.com/dash/","alts":[],"httpStatus":200},{"url":"http://xarray.pydata.org/en/stable/","alts":[],"httpStatus":200},{"url":"https://github.com/vaexio/dash-120million-taxi-app","alts":[],"httpStatus":200},{"url":"https://towardsdatascience.com/beyond-pandas-spark-dask-vaex-and-other-big-data-technologies-battling-head-to-head-a453a1f8cc13","alts":[{"type":3,"url":"medium://p/a453a1f8cc13"},{"type":2,"url":"medium://p/a453a1f8cc13"}],"httpStatus":200},{"url":"https://github.com/vaexio/vaex","alts":[],"httpStatus":200},{"url":"https://nbviewer.jupyter.org/github/vaexio/dash-117million-taxi-app/blob/master/Prepare-taxi-data.ipynb","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1592923029761},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":857,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"interactive-and-scalable-dashboards-with-vaex-and-dash","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"interactive-and-scalable-dashboards-with-vaex-and-dash-9b104b2dc9f0","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*UE9fnamd7uQYXKAlojyajg.gif","originalWidth":1500,"originalHeight":787,"isFeatured":true}},{"name":"9c32","type":3,"text":"Interactive and scalable dashboards with Vaex and Dash","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Learn how to build interactive, scalable dashboards with Dash and Vaex."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"c8d304cbe76","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"ae5d4995e225","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"1adc","type":4,"text":"Popular destinations by zone of the NYC Yellow Taxis in 2012. (Created with Dash and…","markups":[{"type":3,"start":76,"end":80,"href":"https://plotly.com/dash/","title":"","rel":"noopener","anchorType":0},{"type":3,"start":85,"end":89,"href":"https://github.com/vaexio/vaex","title":"","rel":"noopener","anchorType":0}],"layout":3,"metadata":{"id":"1*UE9fnamd7uQYXKAlojyajg.gif","originalWidth":1500,"originalHeight":787,"isFeatured":true}},{"name":"9c32","type":3,"text":"Interactive and scalable dashboards with Vaex and Dash","markups":[]},{"name":"9b82","type":1,"text":"authors: Jovan Veljanoski, Maarten Breddels","markups":[{"type":3,"start":9,"end":26,"anchorType":2,"userId":"3bd573100d67"},{"type":3,"start":27,"end":43,"anchorType":2,"userId":"b8a6decc0862"},{"type":2,"start":0,"end":43}]},{"name":"e726","type":6,"text":"📌 Learn how to implement Machine Learning for Big Data using Dash & Vaex in a special live webinar on Wednesday, August 26th at 2pm EDT.","markups":[{"type":3,"start":0,"end":137,"href":"https://go.plotly.com/dash-vaex","title":"","rel":"","anchorType":0}]},{"name":"d873","type":13,"text":"The thing about dashboards…","markups":[]},{"name":"43c1","type":1,"text":"Creating dashboards is often an integral part of data science projects. Dashboards are all about communication: be it sharing…","markups":[]}],"sections":[{"name":"131a","startIndex":0}]},"isFullContent":false,"subtitle":"Learn how to build interactive, scalable dashboards with Dash and Vaex."},"cardType":0,"isDistributionAlertDismissed":true,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"}}},"paging":{},"collection":{"id":"c8d304cbe76","name":"Plotly","slug":"plotly","tags":["DATA VISUALIZATION","DATA VISUALIZATION TOOLS","DATA SCIENCE"],"creatorId":"5fdd6522cd45","description":"Plotly is a data visualization company that makes it easy to build, test, and deploy beautiful interactive web apps, charts and graphs—in any programming language.","shortDescription":"Plotly is a data visualization company that makes it easy…","image":{"imageId":"1*4R9HdZXaBGLPD_xPoit7iA.png","filter":"","backgroundSize":"","originalWidth":825,"originalHeight":818,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":4041,"activeAt":1738259433858},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*BGP-bpgUuP8pmEZuMiGJAA.jpeg","filter":"","backgroundSize":"","originalWidth":600,"originalHeight":600,"strategy":"resample","height":0,"width":0},"twitterUsername":"plotlygraphs","facebookPageName":"Plotly","publicEmail":"marketing@plot.ly","sections":[{"type":2,"collectionHeaderMetadata":{"backgroundImage":{"id":"1*IkeGJXqyj4a9XwO5HsQOFw.jpeg","originalWidth":4271,"originalHeight":775},"logoImage":{"id":"1*Fi1JGbiqZid_c7VYcIFSkw@2x.png","originalWidth":455,"originalHeight":209,"alt":"Plotly"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[]}}],"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF1A8917","point":0},{"color":"#FF11800E","point":0.1},{"color":"#FF0F730C","point":0.2},{"color":"#FF095407","point":1}],"backgroundColor":"#FFFFFFFF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFFFFFFF","point":0},{"color":"#FFE8F3E8","point":0.1},{"color":"#FFE8F3E8","point":0.2},{"color":"#FFD1E7D1","point":0.6},{"color":"#FFA3D0A2","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF095407","point":0},{"color":"#FF0F730C","point":0.1},{"color":"#FF11800E","point":0.2},{"color":"#FF1A8917","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":4,"title":"People & Culture","url":"https://medium.com/plotly/people-culture/home","topicId":"79ea99091feb","source":"topicId"},{"type":3,"title":"About Plotly","url":"https://plotly.com/?utm_medium=Medium&utm_content=featurepage"}],"colorBehavior":1,"collectionFeatures":[30],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"backgroundImage":{"id":"1*IkeGJXqyj4a9XwO5HsQOFw.jpeg","originalWidth":4271,"originalHeight":775},"logoImage":{"id":"1*Fi1JGbiqZid_c7VYcIFSkw@2x.png","originalWidth":455,"originalHeight":209,"alt":"Plotly"},"alignment":2,"layout":5},"subscriberCount":4041,"tagline":"Plotly’s Dash puts AI & ML in the hands of business users","instagramUsername":"plotly","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"1*1Gb7Lf1O2-Xv4km35A6KcQ.jpeg","filter":"","backgroundSize":"","originalWidth":8000,"originalHeight":2862,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092819278,"type":"Collection"},"masthead":{"collectionMastheadId":"","editorsNote":"","staff":[{"userId":"5fdd6522cd45","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"bae24f18fd5b","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"1a52c7a1d28b","excluded":false,"isEditor":true,"type":"CollectionMastheadUserItem"},{"userId":"964fe0870229","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"b484af2f4651","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"2a47dd64deaa","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"257d816a560d","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"13bce6a63d8f","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"2e9cfd1c2510","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"7dbbd6909e39","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"253aa5c67081","excluded":false,"type":"CollectionMastheadUserItem"},{"userId":"cf0de75416e5","excluded":false,"type":"CollectionMastheadUserItem"}],"type":"CollectionMasthead"},"archiveIndex":{"timeBucket":{"year":"","month":"","day":"","hasStories":false},"yearlyBuckets":[{"year":"2015","month":"","day":"","hasStories":true},{"year":"2016","month":"","day":"","hasStories":true},{"year":"2017","month":"","day":"","hasStories":true},{"year":"2018","month":"","day":"","hasStories":true},{"year":"2019","month":"","day":"","hasStories":true},{"year":"2020","month":"","day":"","hasStories":true},{"year":"2021","month":"","day":"","hasStories":true},{"year":"2022","month":"","day":"","hasStories":true},{"year":"2023","month":"","day":"","hasStories":true},{"year":"2024","month":"","day":"","hasStories":true},{"year":"2025","month":"","day":"","hasStories":true}],"monthlyBuckets":[],"dailyBuckets":[]},"tags":[{"slug":"ai","name":"AI","postCount":481094,"metadata":{"postCount":481094,"coverImage":{"id":"1*uFbaWri2lJTX70PSGZGQeQ.png","originalWidth":1280,"originalHeight":720,"isFeatured":true}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":371165,"metadata":{"postCount":371165,"coverImage":{"id":"1*stJB7yH6GfpLKkvlH3K6YQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true}},"type":"Tag"},{"slug":"dashboard","name":"Dashboards","postCount":0,"metadata":{"postCount":0,"coverImage":{"id":"0*DnS--dOIeQMCJ8yU.jpg","originalWidth":5061,"originalHeight":3374,"externalSrc":"http://cmxhub.com/wp-content/uploads/2016/01/UNB7V2H5L4.jpg"}},"type":"Tag"},{"slug":"vaex","name":"Vaex","postCount":25,"metadata":{"postCount":25,"coverImage":{"id":"1*CRRp4r5pFkh6Cn7bYcej6w.gif","originalWidth":1279,"originalHeight":1152,"isFeatured":true}},"type":"Tag"},{"slug":"dash","name":"Dash","postCount":2926,"metadata":{"postCount":2926,"coverImage":{"id":"1*TXw77eLYN9x81K77mip6IQ.jpeg","originalWidth":716,"originalHeight":331,"isFeatured":true}},"type":"Tag"},{"slug":"r-programming","name":"R Programming","postCount":2758,"metadata":{"postCount":2758,"coverImage":{"id":"1*7DvABZcNfx1wWlteHPZpJg.jpeg","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"python","name":"Python","postCount":272538,"metadata":{"postCount":272538,"coverImage":{"id":"1*CX-BDIgw8kk42l5m4pU11g.png","originalWidth":1024,"originalHeight":1024}},"type":"Tag"},{"slug":"julia","name":"Julia","postCount":1464,"metadata":{"postCount":1464,"coverImage":{"id":"1*7OxRGXqbYvbFJugWgGqVqg.png","originalWidth":1280,"originalHeight":720,"isFeatured":true}},"type":"Tag"},{"slug":"react","name":"React","postCount":113657,"metadata":{"postCount":113657,"coverImage":{"id":"0*vf5mFIQDqmm5MtFH","originalWidth":960,"originalHeight":540,"isFeatured":true}},"type":"Tag"},{"slug":"data-visualization","name":"Data Visualization","postCount":69830,"metadata":{"postCount":69830,"coverImage":{"id":"1*RqQZFF7kZSoFLjbLPQDSpw.jpeg","originalWidth":736,"originalHeight":370}},"type":"Tag"}],"streamItems":[{"createdAt":1739786873481,"postPreview":{"postId":"5ecf7191b503"},"randomId":"885a339f7549","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"808df010143d"},"randomId":"b5ba84ccddb0","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"811f1f57c02e"},"randomId":"8a8b232ab2af","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"fc444e5659ee"},"randomId":"ba914c656365","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"3057b9ee8616"},"randomId":"0d2bf9240c67","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"7bb1333f69c6"},"randomId":"91d5cc4dd105","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"9ebfab168d5b"},"randomId":"5b206eb7a4ed","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"a45c57bb2f3c"},"randomId":"3c4bee40c929","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"c75822d1cc24"},"randomId":"9cf93f5becda","itemType":"postPreview","type":"StreamItem"},{"createdAt":1739786873481,"postPreview":{"postId":"9b104b2dc9f0"},"randomId":"a8e0976903d2","itemType":"postPreview","type":"StreamItem"}]}) // ]]></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9134f914fbd36040',t:'MTczOTc4Njg3My4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>