Hi,
I suppose you won't want to rewrite all examples if you choose
plotly-based viz, so this help page about converting matplotlib figures
or code to plotly might help https://plot.ly/matplotlib/getting-started/
I hope it works, the doc page looks a bit old.

Cheers
Emma


On Sun, Apr 07, 2019 at 10:08:24AM +0100, Andrew Howe wrote:
> I'm with Andreas on this. As a user, I would prefer to see this as part of
> sklearn with the usual sklearn api. If we want static matplotlib-style images,
> reusing (with credit) some of the yellowbrick implementations is a good idea.

> Would we consider plotly-based visualizations? I've been doing my own plotting
> in plotly for the last month, and can't imagine going back to static 
> matplotlib
> plots...

> Andrew

> <~~~~~~~~~~~~~~~~~~~~~~~~~~~>
> J. Andrew Howe, PhD
> LinkedIn Profile
> ResearchGate Profile
> Open Researcher and Contributor ID (ORCID)
> Github Profile
> Personal Website
> I live to learn, so I can learn to live. - me
> <~~~~~~~~~~~~~~~~~~~~~~~~~~~>


> On Thu, Apr 4, 2019 at 3:26 PM Andreas Mueller <t3k...@gmail.com> wrote:

>     I would argue that sklearn users would benefit in having solutions in
>     scikit-learn. The yellowbrick api is quite different from the approaches 
> we
>     discussed. If we can reuse their implementations I think we should do so
>     and credit where we can. 
>     Having plotting in sklearn is also likely to attract more contributors and
>     we have more eyes for doing reviews.

>     Sent from phone. Please excuse spelling and brevity.

>     On Thu, Apr 4, 2019, 05:43 Alexandre Gramfort 
> <alexandre.gramf...@inria.fr>
>     wrote:

>         I also think that YellowBrick folks did a great job and that we should
>         not reinvent the wheel or at least have clear idea of how we differ in
>         scope with respect to YellowBrick

>         my 2c

>         Alex


>         On Thu, Apr 4, 2019 at 1:02 AM Eric Ma <ericmajingl...@gmail.com>
>         wrote:

>             This is not a strongly-held suggestion - but what about adopting
>             YellowBrick as the plotting API for sklearn? Not sure how exactly
>             the interaction would work - could be PRs to their library, or ask
>             them to integrate into sklearn, or do a lock-step dance with
>             versions but maintain separate teams? (I know it raises more
>             questions than answers, but wanted to put it out there.)

>             On Wed, Apr 3, 2019 at 4:07 PM Joel Nothman 
> <joel.noth...@gmail.com
>             > wrote:

>                 With option 1, sklearn.plot is likely to import large chunks 
> of
>                 the
>                 library (particularly, but not exclusively, if the plotting
>                 function
>                 "does the work" as Andy suggests). This is under the 
> assumption
>                 that
>                 one plot function will want to import trees, another GPs, etc.
>                 Unless
>                 we move to lazy imports, that would be against the current
>                 convention
>                 that importing sklearn is fairly minimal.

>                 I do like Andy's idea of framing this discussion more clearly
>                 around
>                 likely candidates.

>                 On Thu, 4 Apr 2019 at 00:10, Andreas Mueller 
> <t3k...@gmail.com>
>                 wrote:

>                 > I think what was not clear from the question is that there 
> is
>                 actually
>                 > quite different kinds of plotting functions, and many of
>                 these are tied
>                 > to existing code.

>                 > Right now we have some that are specific to trees 
> (plot_tree)
>                 and to
>                 > gradient boosting (plot_partial_dependence).

>                 > I think we want more general functions, and
>                 plot_partial_dependence has
>                 > been extended to general estimators.

>                 > However, the plotting functions might be generic wrt the
>                 estimator, but
>                 > relate to a specific function, say plotting results of
>                 GridSearchCV.
>                 > Then one might argue that having the plotting function close
>                 to
>                 > GridSearchCV might make sense.
>                 > Similarly for plotting partial dependence plots and feature
>                 importances,
>                 > it might be a bit strange to have the plotting functions not
>                 next to the
>                 > functions that compute these.
>                 > Another question would be is whether the plotting functions
>                 also "do the
>                 > work" in some cases:
>                 > Do we want plot_partial_dependence also to compute the
>                 partial
>                 > dependence? (I would argue yes but either way the result is 
> a
>                 bit strange).
>                 > In that case you have somewhat of the same functionality in
>                 two
>                 > different modules, unless you also put the "compute partial
>                 dependence"
>                 > function in the plotting module as well,
>                 > which is a bit strange.

>                 > Maybe we could inform this discussion by listing candidate
>                 plotting
>                 > functions, and also considering whether they "do the work"
>                 and where the
>                 > "work" function is.

>                 > Other examples are plotting the confusion matrix, which
>                 probably should
>                 > also compute the confusion matrix (it's fast and so that
>                 would be
>                 > convenient), and so it would "duplicate" functionality from
>                 the metrics
>                 > module.

>                 > Plotting learning curves and validation curves should
>                 probably not do
>                 > the work as it's pretty involved, and so someone would need
>                 to import
>                 > the learning and validation curves from model selection, and
>                 then the
>                 > plotting functions from a plotting module.

>                 > Calibrations curves and P/R curves and roc curves are also
>                 pretty fast
>                 > to compute (and passing around the arguments is somewhat
>                 error prone) so
>                 > I would say the plotting functions for these should do the
>                 work as well.

>                 > Anyway, you can see that many plotting functions are 
> actually
>                 associated
>                 > with functions in existing modules and the interactions are 
> a
>                 bit unclear.

>                 > The only plotting functions I haven't mentioned so far that 
> I
>                 thought
>                 > about in the past are "2d scatter" and "plot decision
>                 function". These
>                 > would be kind of generic, but mostly used in the examples.
>                 > Though having a discrete 2d scatter function would be pretty
>                 nice
>                 > (plt.scatter doesn't allow legends and makes it hard to use
>                 qualitative
>                 > color maps).


>                 > I think I would vote for option (1), "sklearn.plot.plot_zzz"
>                 but the
>                 > case is not really that clear.

>                 > Cheers,

>                 > Andy

>                 > On 4/3/19 7:35 AM, Roman Yurchak via scikit-learn wrote:
>                 > > +1 for options 1 and +0.5 for 3. Do we anticipate that 
> many
>                 plotting
>                 > > functions will be added? If it's just a dozen or less,
>                 putting them all
>                 > > into a single namespace sklearn.plot might be easier.

>                 > > This also would avoid discussion about where to put some
>                 generic
>                 > > plotting functions (e.g.
>                 > > https://github.com/scikit-learn/scikit-learn/issues/13448#
>                 issuecomment-478341479).

>                 > > Roman

>                 > > On 03/04/2019 12:06, Trevor Stephens wrote:
>                 > >> I think #1 if any of these... Plotting functions should
>                 hopefully be as
>                 > >> general as possible, so tagging with a specific type of
>                 estimator will,
>                 > >> in some scikit-learn utopia, be unnecessary.

>                 > >> If a general plotter is built, where does it live in 
> other
>                 > >> estimator-specific namespace options? Feels awkward to 
> put
>                 it under
>                 > >> every estimator's namespace.

>                 > >> Then again, there might be a #4 where there is no plot
>                 module and
>                 > >> plotting classes live under groups of utilities like
>                 introspection,
>                 > >> cross-validation or something?...

>                 > >> On Wed, Apr 3, 2019 at 8:54 PM Andrew Howe <
>                 ahow...@gmail.com
>                 > >> <mailto:ahow...@gmail.com>> wrote:

>                 > >>      My preference would be for (1). I don't think the
>                 sub-namespace in
>                 > >>      (2) is necessary, and don't like (3), as I would
>                 prefer the plotting
>                 > >>      functions to be all in the same namespace
>                 sklearn.plot.

>                 > >>      Andrew

>                 > >>      <~~~~~~~~~~~~~~~~~~~~~~~~~~~>
>                 > >>      J. Andrew Howe, PhD
>                 > >>      LinkedIn Profile 
> <http://www.linkedin.com/in/ahowe42>
>                 > >>      ResearchGate Profile <http://www.researchgate.net/
>                 profile/John_Howe12/>
>                 > >>      Open Researcher and Contributor ID (ORCID)
>                 > >>      <http://orcid.org/0000-0002-3553-1990>
>                 > >>      Github Profile <http://github.com/ahowe42>
>                 > >>      Personal Website <http://www.andrewhowe.com>
>                 > >>      I live to learn, so I can learn to live. - me
>                 > >>      <~~~~~~~~~~~~~~~~~~~~~~~~~~~>


>                 > >>      On Tue, Apr 2, 2019 at 3:40 PM Hanmin Qin <
>                 qinhanmin2...@sina.com
>                 > >>      <mailto:qinhanmin2...@sina.com>> wrote:

>                 > >>          See 
> https://github.com/scikit-learn/scikit-learn/
>                 issues/13448

>                 > >>          We've introduced several plotting functions
>                 (e.g., plot_tree and
>                 > >>          plot_partial_dependence) and will introduce more
>                 (e.g.,
>                 > >>          plot_decision_boundary) in the future.
>                 Consequently, we need to
>                 > >>          decide where to put these functions. Currently,
>                 there're 3
>                 > >>          proposals:

>                 > >>          (1) sklearn.plot.plot_YYY (e.g.,
>                 sklearn.plot.plot_tree)

>                 > >>          (2) sklearn.plot.XXX.plot_YYY (e.g.,
>                 sklearn.plot.tree.plot_tree)

>                 > >>          (3) sklearn.XXX.plot.plot_YYY (e.g.,
>                 > >>          sklearn.tree.plot.plot_tree, note that we won't
>                 support from
>                 > >>          sklearn.XXX import plot_YYY)

>                 > >>          Joel Nothman, Gael Varoquaux and I decided to
>                 post it on the
>                 > >>          mailing list to invite opinions.

>                 > >>          Thanks

>                 > >>          Hanmin Qin
>                 > >>          _______________________________________________
>                 > >>          scikit-learn mailing list
>                 > >>          scikit-learn@python.org <mailto:
>                 scikit-learn@python.org>
>                 > >>          https://mail.python.org/mailman/listinfo/
>                 scikit-learn

>                 > >>      _______________________________________________
>                 > >>      scikit-learn mailing list
>                 > >>      scikit-learn@python.org <mailto:
>                 scikit-learn@python.org>
>                 > >>      
> https://mail.python.org/mailman/listinfo/scikit-learn


>                 > > _______________________________________________
>                 > > scikit-learn mailing list
>                 > > scikit-learn@python.org
>                 > > https://mail.python.org/mailman/listinfo/scikit-learn
>                 > _______________________________________________
>                 > scikit-learn mailing list
>                 > scikit-learn@python.org
>                 > https://mail.python.org/mailman/listinfo/scikit-learn
>                 _______________________________________________
>                 scikit-learn mailing list
>                 scikit-learn@python.org
>                 https://mail.python.org/mailman/listinfo/scikit-learn

>             _______________________________________________
>             scikit-learn mailing list
>             scikit-learn@python.org
>             https://mail.python.org/mailman/listinfo/scikit-learn

>         _______________________________________________
>         scikit-learn mailing list
>         scikit-learn@python.org
>         https://mail.python.org/mailman/listinfo/scikit-learn

>     _______________________________________________
>     scikit-learn mailing list
>     scikit-learn@python.org
>     https://mail.python.org/mailman/listinfo/scikit-learn


> _______________________________________________
> scikit-learn mailing list
> scikit-learn@python.org
> https://mail.python.org/mailman/listinfo/scikit-learn

_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn

Reply via email to