Pandas: рдПрдкреАрдЖрдИ: рдкрдВрдбреЛрдВ рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рд╡рд╛рд▓реЗ рдкрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЬреВрди 2019  ┬╖  44рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pandas-dev/pandas

# 26414 рдореЗрдВ рд╣рдордиреЗ рдкрд╛рдВрдбрд╛ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдмреИрдХрдПрдВрдб рдФрд░ рд╡рд░реНрддрдорд╛рди рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдмреИрдХрдПрдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдмреИрдХрдПрдВрдб рдХреЛ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкрд╛рдВрдбрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди matplotlib рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд API рдореЗрдВ рдЖрдЧреЗ рд╕реВрдЪреАрдмрджреНрдз рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ API рдХреЛ рд╢рд╛рдпрдж рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд╢реНрдиреЛрдВ/рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рд╡рд╛рд▓реА рд╕реВрдЪреА рдпрд╣рд╛рдВ рджреА рдЧрдИ рд╣реИ:

рдПрдкреАрдЖрдИ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рддрд░реАрдХреЗ (рд╡реЗ Series.plot(kind='line') ... рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ):

  • рд▓рд╛рдЗрди рдкреНрд▓реЙрдЯ
  • рдмрд╛рд░рдкреНрд▓реЙрдЯ
  • рдмрд░рд╣рдкреНрд▓реЙрдЯ
  • рд╣рд┐рд╕реНрдЯрдкреНрд▓реЙрдЯ
  • рд░реЗрдЦрд╛ - рдЪрд┐рддреНрд░
  • рдХреЗрдбреАрдкреНрд▓реЙрдЯ
  • рдПрд░рд┐рдпрд╛рдкреНрд▓реЙрдЯ
  • рдкрд╛рдИрдкреНрд▓реЙрдЯ
  • рд╕реНрдХреИрдЯрд░ рдкреНрд▓реЙрдЯ
  • рд╣реЗрдХреНрд╕рдмрд┐рдирдкреНрд▓реЙрдЯ

рдкрд╛рдВрдбрд╛ рдореЗрдВ рджрд┐рдП рдЧрдП рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди (рдЬреИрд╕реЗ pandas.plotting.andrews_curves(df) )

  • рдПрдВрдбреНрд░рдпреВрдЬ_рдХрд░реНрд╡реНрд╕
  • рдСрдЯреЛрд╕рд╣рд╕рдВрдмрдВрдз_рдкреНрд▓реЙрдЯ
  • рдмреВрдЯрд╕реНрдЯреНрд░реИрдк_рдкреНрд▓реЙрдЯ
  • lag_plot
  • рд╕рдорд╛рдирд╛рдВрддрд░_рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
  • рд░реЗрдбрд╡рд┐рдЬрд╝
  • рд╕реНрдХреИрдЯрд░_рдореИрдЯреНрд░рд┐рдХреНрд╕
  • рдЯреЗрдмрд▓

рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЕрдиреНрдп рдмреИрдХрдПрдВрдб рдХреЛ рднреА рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдкреНрд░рд╛рд░реВрдк .plot (рдЬреИрд╕реЗ DataFrame.plot(kind='autocorrelation') ...) рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рд╕рдордЭрджрд╛рд░реА рд╣реЛрдЧреА? рдХреНрдпрд╛ рдПрдкреАрдЖрдИ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣рдиреЗ рдпрд╛ рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реИ?

рдЕрдирд╛рд╡рд╢реНрдпрдХ рддрд░реАрдХреЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрднрд╡рддрдГ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдЗрддрд┐рд╣рд╛рд╕_рд╢реНрд░реГрдВрдЦрд▓рд╛
  • рд╣рд┐рд╕реНрдЯ_рдлреНрд░реЗрдо
  • рд░реЗрдЦрд╛ - рдЪрд┐рддреНрд░
  • рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ_рдлреНрд░реЗрдо
  • рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ_рдлреНрд░реЗрдо_рдЧреНрд░реБрдкрдмреА

boxplot рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд▓реЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛):

  1. DataFrame.plot.boxplot()
  2. DataFrame.plot(kind='box')
  3. DataFrame.boxplot()
  4. pandas.plotting.boxplot(df)

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ 4 рдирдВрдмрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдирдВрдмрд░ 3, рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдХрд░реЗрдВ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ boxplot_frame рдмреИрдХрдПрдВрдб рдореЗрдВ рд╡рд┐рдзрд┐, рд▓реЗрдХрд┐рди рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ BoxPlot (рдирдВрдмрд░ 3 рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА hist рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ)ред

boxplot_frame_groupby , рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП BoxPlot рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?

рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп:

  • рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ
  • рдЕрдкрдВрдЬреАрдХреГрдд

рдХреНрдпрд╛ рд╡реЗ рдЕрдиреНрдп рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ?

рдкрд╛рдВрдбрд╛ 0.23 рдореЗрдВ рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ:

  • рдЯреАрдПрд╕рдкреАрд▓реЙрдЯ

рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ @liirusuk рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдиреЛрдЯрдмреБрдХ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/python-sprints/pandas_plotting_library/blob/master/AllPlottingExamples.ipynb

рдкреНрд░рддрд┐рд▓рд┐рдкрд┐: @ рдкрд╛рдВрдбрд╛-рджреЗрд╡/рдкрд╛рдВрдбрд╛-рдХреЛрд░ @tacaswell , @jakevdp , @philippjfr , @PatrikHlobil

API Design Clean Needs Discussion Visualization

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рд╡реЗрд╢-рдмрд┐рдВрджреБ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ

diff --git a/pandas/plotting/_core.py b/pandas/plotting/_core.py
index 0610780ed..c8ac12901 100644
--- a/pandas/plotting/_core.py
+++ b/pandas/plotting/_core.py
@@ -1532,8 +1532,10 @@ class PlotAccessor(PandasObject):

         return self(kind="hexbin", x=x, y=y, C=C, **kwargs)

+_backends = {}

-def _get_plot_backend(backend=None):
+
+def _get_plot_backend(backend="matplotlib"):
     """
     Return the plotting backend to use (e.g. `pandas.plotting._matplotlib`).

@@ -1546,7 +1548,14 @@ def _get_plot_backend(backend=None):
     The backend is imported lazily, as matplotlib is a soft dependency, and
     pandas can be used without it being installed.
     """
-    backend_str = backend or pandas.get_option("plotting.backend")
-    if backend_str == "matplotlib":
-        backend_str = "pandas.plotting._matplotlib"
-    return importlib.import_module(backend_str)
+    import pkg_resources  # slow import. Delay
+    if backend in _backends:
+        return _backends[backend]
+
+    for entry_point in pkg_resources.iter_entry_points("pandas_plotting_backends"):
+        _backends[entry_point.name] = entry_point.load()
+
+    try:
+        return _backends[backend]
+    except KeyError:
+        raise ValueError("No backend {}".format(backend))
diff --git a/setup.py b/setup.py
index 53e12da53..d2c6b18b8 100755
--- a/setup.py
+++ b/setup.py
@@ -830,5 +830,10 @@ setup(
             "hypothesis>=3.58",
         ]
     },
+    entry_points={
+        "pandas_plotting_backends": [
+            "matplotlib = pandas:plotting._matplotlib",
+        ],
+    },
     **setuptools_kwargs
 )

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред рддреГрддреАрдп рдкрдХреНрд╖ рдкреИрдХреЗрдЬ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ setup.py (рдпрд╛ pyproject.toml) рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ

entry_points={
    "pandas_plotting_backends": ["altair = pdvega._pandas_plotting_backend"]
}

рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдпрд╣ рдирд╛рдордХрд░рдг рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмреАрдЪ рддрдВрдЧ рдпреБрдЧреНрдорди рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред

рд╕рднреА 44 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд╡реИрдкреЗрдмрд▓ рдмреИрдХрдПрдВрдб рдПрдкреАрдЖрдИ рд╕реЗ рдСрдЯреЛрдХреЙрд░реНрдкреЛрд░реЗрд╢рди рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦреЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ df.boxplot рдФрд░ hist рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ .plot API рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдмреИрдХрдПрдВрдб рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреВрдВрдЧрд╛ред

рдпрд╣рд╛рдБ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдмреИрдХрдПрдВрдб рдПрдкреАрдЖрдИ рдкрд░ рдореЗрд░реА рд╢реБрд░реБрдЖрдд рд╣реИ: https://github.com/TomAugspurger/pandas/commit/b07aba28a37b0291fd96a1f571848a7be2b6de8d

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо hvplot (рдмрд╛рдХреА рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА andrews_curves , scatter_matrix , lag_plot рдЬреИрд╕реЗ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред ..

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рд╕рднреА рдмреИрдХрдПрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЪрдпрдирд┐рдд рдмреИрдХрдПрдВрдб рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ matplotlib рднреВрдЦрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ boxplot рдФрд░ hist рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди Series.hist() рд▓рд┐рдП рд╕рд┐рд░реНрдл рд╢реЙрд░реНрдЯрдХрдЯ рдереЗ Series.plot.hist() ред "рд╢реЙрд░реНрдЯрдХрдЯ" рдкреНрд▓реЙрдЯ рдЧреНрд░рд┐рдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВрдиреЗ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

IMO, рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдореБрдЦреНрдп рдореВрд▓реНрдп .plot рдирд╛рдо рд╕реНрдерд╛рди рд╣реИред

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ hvplot рдХрд╛ рдПрдВрдбреНрд░рдпреВ рдХрд╛ рд╡рдХреНрд░ рдкреНрд▓реЙрдЯ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдлрд╝рдВрдХреНрд╢рди рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
hvplot рд╕реЗ рдФрд░ рд╡рд╣рд╛рдВ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдкрд╛рд╕ рдХрд░реЗрдВред

рд╕реВрд░реНрдп рдкрд░, рдЬреВрди 9, 2019 рдкреВрд░реНрд╡рд╛рд╣реНрди 7:17 рдмрдЬреЗ рдорд╛рд░реНрдХ рдЧрд╛рд░реНрд╕рд┐рдпрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо hvplot (рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рдереА)
рдмрд╛рдХреА) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА andrews_curves рдЬреИрд╕реЗ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ,
рд╕реНрдХреИрдЯрд░_рдореИрдЯреНрд░рд┐рдХреНрд╕, рд▓реИрдЧ_рдкреНрд▓реЙрдЯ,...

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рд╕рднреА рдмреИрдХрдПрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЪрдпрдирд┐рдд рдмреИрдХрдПрдВрдб рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд▓рд┐рдП
matplotlib рднреВрдЦрдВрдб?

рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ рдФрд░ рд╣рд┐рд╕реНрдЯ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдерд╛
Series.plot.hist() рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯрдХрдЯреНрд╕ Series.hist()ред "рд╢реЙрд░реНрдЯрдХрдЯ" рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рдкреНрд▓реЙрдЯ рдЧреНрд░рд┐рдб, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВрдиреЗ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЙрд╕ рдЯреАрдо рдореЗрдВ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pandas-dev/pandas/issues/26747?email_source=notifications&email_token=AAKAOIRLJHBMXMXKK2IG2NDPZTYFPA5CNFSM4HWIMEK2YY3PNVWWK3TUL52HS4DFVREXG43IIVMVBW63LNMVXHJ7615T
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAKAOISDHL6H7PVOOJAQXELPZTYFPANCNFSM4HWIMEKQ
.

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП pandas.plotting.matplotlib.andrews_curves рдХреЗ рдмрдЬрд╛рдп, pandas.plotting.andrews_curves ред

@TomAugspurger рдореБрдЭреЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЬрд┐рд╕ рдПрдкреАрдЖрдИ рдХреЛ https://github.com/TomAugspurger/pandas/commit/b07aba28a37b0291fd96a1f571848a7be2b6de8d рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред #26753 рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рдЗрд╕ рдкрд░ рднреА рдкреНрд░рдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ andrews_curves , scatter_matrix ... рдХреЛ .plot() рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд░рд▓ рдФрд░ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ (рд╣рдореЗрдВ , рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛)ред

рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд kwargs рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ? рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреИрдХрдПрдВрдб рд╕рднреА matplotlib-рд╢реИрд▓реА рдкреНрд▓реЙрдЯ рдЕрдиреБрдХреВрд▓рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЙрди рдХреАрд╡рд░реНрдб рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд┐рд╢реЗрд╖ рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреАрд╡рд░реНрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ?

рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдЧреИрд░-рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдХреЛ рдмреИрдХрдПрдВрдб рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдЕрд╕рдВрдЧрддрддрд╛рдУрдВ рдХреА рдПрдХ рд▓рдВрдмреА рдкреВрдВрдЫ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рд░реВрдкрд╛рдВрддрд░рдг рдкрд░рдд рдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрднреА рднреА рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЕрдиреБрднрд╡ рд╕реЗ рдмреЛрд▓рдирд╛ рдЬрд┐рд╕рдиреЗ рдПрдордкреАрдПрд▓рдбреА 3 рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ)ред

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╡рд┐рдирд┐рдореЗрдпрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдмреИрдХрдПрдВрдб рдХреЛ рдЙрдореНрдореАрджреЛрдВ рдХреЗ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреИрдХрдПрдВрдб рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдХрд┐ рд╡реЗ рдЙрдирдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред 100% рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛
рдмреИрдХрдПрдВрдб рдореЗрдВ рд╕рдВрдЧрддрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ,
рдЪреВрдВрдХрд┐ рд╡рд╛рдкрд╕реА рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЕрдм matplotlib рдЕрдХреНрд╖ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдФрд░ рдЕрдЧрд░
рд╣рдо рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдкрд░ рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдмреИрдХрдПрдВрдб
рд╣рд░ рд╕рдВрднрд╡ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЫреЗ рдХреА рдУрд░ рдЭреБрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдВрдбрд╛ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ **kwargs рдХреЛ to . рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдЗрдВрдЬрди, рдФрд░ рд╡реЗ рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЙрдиреНрд╣реЗрдВред

рд╕реЛрдо, рдЬреВрди 10, 2019 рдХреЛ рд╕реБрдмрд╣ 10:42 рдмрдЬреЗ рдЬреЗрдХ рд╡реЗрдВрдбрд░рдкреНрд▓рд╛рд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд╕рд╛рдЬрд┐рд╢ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдЕрддрд┐рд░рд┐рдХреНрдд kwargs рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ
рдХрд╛рд░реНрдп? рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреИрдХрдПрдВрдб рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рднреА matplotlib- рд╢реИрд▓реА рдкреНрд▓реЙрдЯ рдЕрдиреБрдХреВрд▓рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд╣рд┐рдП
рдЦреЛрдЬрд╢рдмреНрджреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдВ
рдмреИрдХрдПрдВрдб?

рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рдЧреИрд░-рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдмреИрдХрдПрдВрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЕрд╕рдВрдЧрддрддрд╛рдУрдВ рдХреА рдПрдХ рд▓рдВрдмреА рдкреВрдВрдЫ рдХреЗ рд╕рд╛рде рд░реВрдкрд╛рдВрддрд░рдг рдкрд░рдд рдЬреЛ
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрднреА рднреА рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдиреБрднрд╡ рд╕реЗ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЛрд▓рдирд╛ рдЬреЛ
рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ mpld3 рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА)ред

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗ рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ
рд╡рд┐рдирд┐рдореЗрдпрддрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдмреИрдХрдПрдВрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛
рдЙрдореНрдореАрджреЛрдВ рдХрд╛ рдЙрдЪрд┐рдд рд╕реЗрдЯред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pandas-dev/pandas/issues/26747?email_source=notifications&email_token=AAKAOIS3IBV4XSSY7BPSCF3PZZY5LA5CNFSM4HWIMEK2YY3PNVWWK3TUL52HS4DFWSG43VMVBW
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAKAOIQ3GYOGAPUZ4LSNK2DPZZY5LANCNFSM4HWIMEKQ
.

рдореБрдЭреЗ рдЦреЗрдж рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдПрдХ рдкреНрд▓реЙрдЯрд┐рдВрдЧ "рдПрдкреАрдЖрдИ" рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдбрд┐рдмреНрдмрд╛рдмрдВрдж рднреВрдЦрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмреИрдХрдПрдВрдб рдХрдореЛрдмреЗрд╢ рдПрдХ рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛? рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреМрди рд╕реА рдирдИ рдХреНрд╖рдорддрд╛ рд╣реИ? рд╢рд╛рдпрдж рд╡реЗрдЧрд╛ рдирд┐рд░реНрдпрд╛рддрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рдВрдбрд╛ рдХреА рддрд░рд╣ рдХреБрдЫ?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рд╕рд╣реА рд╣реИ рдХрд┐ рд╣рд░ рдмреИрдХрдПрдВрдб рдХрдореЛрдмреЗрд╢ рдПрдХ рдЬреИрд╕рд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд┐рд░ рдЪрд╛рд░реНрдЯ рдореЗрдВ matplotlib рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯреЗрдмрд▓ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдЪрд╛рд░реНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рджреВрд╕рд░реА рдУрд░, рдмреЛрдХреЗрд╣, рдЕрд▓реНрдЯреЗрдпрд░, рдПрдЯ рдЕрд▓ред рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рд░ рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП matplotlib рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдлреА рдкрд░рд┐рдкрдХреНрд╡ рдирд╣реАрдВ рд╣реИрдВред

рдПрдХ рд╣реА рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдПрдХ рдмрдбрд╝реА рдЬреАрдд рд╣реЛрдЧреАред

рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдЧреИрд░-рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдХреЛ рдмреИрдХрдПрдВрдб рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдЕрд╕рдВрдЧрддрддрд╛рдУрдВ рдХреА рдПрдХ рд▓рдВрдмреА рдкреВрдВрдЫ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рд░реВрдкрд╛рдВрддрд░рдг рдкрд░рдд рдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрднреА рднреА рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЕрдиреБрднрд╡ рд╕реЗ рдмреЛрд▓рдирд╛ рдЬрд┐рд╕рдиреЗ рдПрдордкреАрдПрд▓рдбреА 3 рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ)ред

рдФрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдкреАрдЖрдИ рд╡рд╛рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Matplotlib рдХреЛ рдФрд░ рднреА рдиреАрдЪреЗ рдкрд┐рди рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХрд┐рд╕ рд╢реИрд▓реА рдХреЗ рдШреБрдВрдбреА рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдФрд░ рдмреИрдХрдПрдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ _not_ рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ **kwargs рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджрд┐рдП рдЧрдП рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рд▓реМрдЯрд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдПрдВ "рд╕рд╣реА рдЪреАрдЬ" рд╣реИрдВ рдЬреЛ рддрдереНрдп рдХреЗ рдмрд╛рдж рд╢реИрд▓реА рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд┐рд░ рдЪрд╛рд░реНрдЯ рдореЗрдВ matplotlib рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯреЗрдмрд▓ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдЪрд╛рд░реНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @jakevdp , рд╣рд╛рдБ, рд╕рд╣рднрд╛рдЧреА рдЪрд╛рд░реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓рдХреНрд╖реНрдп рд╣реИред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЪреАрдЬреЗрдВ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдПрд╡реЗрдиреНрдпреВ рд╕реЗ рдмрд╣реБрдд рдиреАрдЪреЗ рдЬрд╛рдПрдВ, рдпрд╣рд╛рдВ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИред

рдкрдВрдбреЛрдВ рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдм рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреВрдЫрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдкреНрд▓реЙрдЯ рдХрд╛ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (рдЬреИрд╕реЗ рд╡реЗрдЧрд╛ JSON рдлрд╝рд╛рдЗрд▓) рдХреНрдпреЛрдВ рди рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рдФрд░ рдмреИрдХрдПрдВрдб рдХреЛ рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░реЗрдВред

рдлрд╛рдпрджреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  1. рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдкрд╛рдВрдбрд╛ рдПрдкреАрдЖрдИ рдХреА рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╢рдХреНрддрд┐ рд╕реЗ рдмрдВрдзреЗ рдирд╣реАрдВ рд╣реЛрдирд╛, рдЬрд┐рд╕реЗ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  2. рдкрд╛рдВрдбрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреНрд▓реЙрдЯ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд╛рд░реНрдп рдЕрдиреНрдп рдкрд╛рдЗрдбрд╛рдЯрд╛ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдИрдЖрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
  3. рдкрд╛рдЗрдбреЗрдЯрд╛ рд╕реНрдкреЗрд╕ рдореЗрдВ рдЗрдВрдЯрд░рдЪреЗрдВрдЬ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдирд╛
  4. рдЬреЛ рдирдП рдЯреВрд▓ рдХреЛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ
  5. рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдФрд░ рднреА рддрд╛рд░реНрдХрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдмреЗрд╣рддрд░ рдкреНрд░реЛрддреНрд╕рд╛рд╣рдиред

Vega/Vega-lite , рдПрдХ рдЖрдзреБрдирд┐рдХ, рд╕реНрдерд╛рдкрд┐рдд, рдЦреБрд▓реА, рдФрд░ JSON- рдЖрдзрд╛рд░рд┐рдд рдЕрд░реНрдерд╛рдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдХрдИ рдорд╛рдирд╡-рд╡рд░реНрд╖реЛрдВ рдиреЗ рдЗрд╕реЗ рдЗрд╕рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдирд┐рд░реНрдорд┐рдд рдореМрдЬреВрджрд╛ рдЙрдкрдХрд░рдг, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред . (рдмрд╕ рдХреГрдкрдпрд╛ рдирд╣реАрдВ )ред

рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, frontend->IR->backend , рдЬреИрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдХрдо рд╕реЗ рдХрдо рддреАрди рдкреИрдХреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдкрдВрдбреЛрдВ рдХреЛ рдмреИрдХрдПрдВрдб рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рд╣рд┐рд░рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдзрдорд╛рдХрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЬреВрди 15, 2019, 16:28 рдкрд░ рдкрд░, pilkibun [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд┐рд░ рдЪрд╛рд░реНрдЯ рдореЗрдВ matplotlib рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯреЗрдмрд▓ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдЪрд╛рд░реНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @jakevdp , рд╣рд╛рдБ, рд╕рд╣рднрд╛рдЧреА рдЪрд╛рд░реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓рдХреНрд╖реНрдп рд╣реИред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЪреАрдЬреЗрдВ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдПрд╡реЗрдиреНрдпреВ рд╕реЗ рдмрд╣реБрдд рдиреАрдЪреЗ рдЬрд╛рдПрдВ, рдпрд╣рд╛рдВ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИред

рдкрдВрдбреЛрдВ рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдм рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреВрдЫрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдкреНрд▓реЙрдЯ рдХрд╛ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (рдЬреИрд╕реЗ рд╡реЗрдЧрд╛ JSON рдлрд╝рд╛рдЗрд▓) рдХреНрдпреЛрдВ рди рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рдФрд░ рдмреИрдХрдПрдВрдб рдХреЛ рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░реЗрдВред

рдлрд╛рдпрджреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдкрд╛рдВрдбрд╛ рдПрдкреАрдЖрдИ рдХреА рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╢рдХреНрддрд┐ рд╕реЗ рдмрдВрдзреЗ рдирд╣реАрдВ рд╣реЛрдирд╛, рдЬрд┐рд╕реЗ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкрд╛рдВрдбрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреНрд▓реЙрдЯ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд╛рд░реНрдп рдЕрдиреНрдп рдкрд╛рдЗрдбрд╛рдЯрд╛ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдИрдЖрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
рдкрд╛рдЗрдбреЗрдЯрд╛ рд╕реНрдкреЗрд╕ рдореЗрдВ рдЗрдВрдЯрд░рдЪреЗрдВрдЬ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдирд╛
рдЬреЛ рдирдП рдЯреВрд▓ рдХреЛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ
рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдФрд░ рднреА рддрд╛рд░реНрдХрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдмреЗрд╣рддрд░ рдкреНрд░реЛрддреНрд╕рд╛рд╣рдиред
рд╡реЗрдЧрд╛/рд╡реЗрдЧрд╛-рд▓рд╛рдЗрдЯ, рдПрдХ рдЖрдзреБрдирд┐рдХ, рд╕реНрдерд╛рдкрд┐рдд, рдЦреБрд▓реА, рдФрд░ JSON- рдЖрдзрд╛рд░рд┐рдд рдЕрд░реНрдерд╛рдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдХрдИ рдорд╛рдирд╡-рд╡рд░реНрд╖реЛрдВ рдиреЗ рдЗрд╕реЗ рдЗрд╕рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд▓рдЧрд╛рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдирд┐рд░реНрдорд┐рдд рдореМрдЬреВрджрд╛ рдЙрдкрдХрд░рдг, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред . (рдмрд╕ рдХреГрдкрдпрд╛ рдордд рдХрд░реЛ)ред

рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдлрд╝реНрд░рдВрдЯрдПрдВрдб->рдЖрдИрдЖрд░->рдмреИрдХрдПрдВрдб, рдЬреИрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдЕрдм рд╣рдо #26753 рд╡рд┐рд▓рдп рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдФрд░ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдмреИрдХрдПрдВрдб рдХреЛ рдкрд╛рдВрдбрд╛ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рд╣рдо matplotlib рдХреЛрдб рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдордиреЗ SeriesPlotMethods рдФрд░ FramePlotMethods рдХреЛ рдкрд╛рдВрдбрд╛ (matplotlib рдирд╣реАрдВ) рдкрдХреНрд╖ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд╡рд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрд╛рдВрдбрд╛ рдкрдХреНрд╖ рдореЗрдВ рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдерд╛ред

рд▓реЗрдХрд┐рди рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдмреИрдХрдПрдВрдб рдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдмреИрдХрдПрдВрдб рдореЗрдВ рдкреНрд░рддрд┐ рдкреНрд▓реЙрдЯ рдПрдХ рд╡рд░реНрдЧ рд╣реЛрдЧрд╛ (рдЬреИрд╕реЗ LinePlot , BarPlot ), рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╡реЗ рдкреНрд░рддрд┐ рд╡рд┐рдзрд┐ рдПрдХ рдкреНрд▓реЙрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ hvPlot, or the same names as pandas for pdvega `).

рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рд╡рд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдкреАрдЖрдИ рдХреЛ hvplot рдФрд░ pdvega рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рд╕рд┐рд░реНрдл рдкрд╛рдВрдбрд╛ рдореЗрдВ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдмрдирд╛рдЙрдВрдЧрд╛, рдЬреЛ рдмреИрдХрдПрдВрдб рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдЕрдЧрд░ рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдмрдирд╛рдХрд░ рдФрд░ рдкрдВрдбреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдмреИрдХрдПрдВрдб рдХреЛ рдЕрдкрдирд╛рдиреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдПрдХ рдмрд╛рд░ рдпрд╣ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо hvplot рдФрд░ pdvega (рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ) рдХрд╛рдлреА рдЫреЛрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рд╡рд┐рдЪрд╛рд░?

рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рд╡рд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдкреАрдЖрдИ рдХреЛ рдПрдЪрд╡реАрдкреНрд▓реЙрдЯ рдФрд░ рдкреАрдбреАрд╡реЗрдЧрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рд╕рд┐рд░реНрдл рдкрд╛рдВрдбрд╛ рдореЗрдВ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдмрдирд╛рдЙрдВрдЧрд╛, рдЬреЛ рдмреИрдХрдПрдВрдб рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрддреБрд▓рди рдкрд░ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреНрд▓реАрдирд░ рд╣реЛрдЧрд╛ред рдореИрдВ рдЕрдиреНрдп рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдмреИрдХрдПрдВрдб рд╕реЗ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо hvPlot рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд▓реЙрдЯ рд╡рд┐рдзрд┐рдпрд╛рдБ рдХрд╛рдлреА рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рддреА рд╣реИрдВ, рдЬреИрд╕реЗ scatter , line рдФрд░ area рдХрд╛рдлреА рд╣рдж рддрдХ рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдирдХреЗ рдмреАрдЪ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдк-рд╡рд░реНрдЧреАрдХрд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреИрдХрдПрдВрдб рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд▓реЙрдЯ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓, рд╕рдмрд╕реЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЬрдм рдЖрдк I'd prefer not to rely on subclassing to share code between them рддреЛ рдЖрдкрдХрд╛ рдорддрд▓рдм class LinePlot(MPLPlot) рдЬреИрд╕рд╛ рд╣реИ, рд╣реИ рдирд╛? рдФрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдореВрд░реНрдд рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмреИрдХрдПрдВрдб рдХреЛ рдкрдВрдбреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдкреНрд▓реЙрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП +1 рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕реЗ рдЕрднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рд╣рдо рд▓рдЧрднрдЧ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдкрд╛рдВрдбрд╛ рдХреЛ рд░рд┐рд╣рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ kind='foo' рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмреИрдХрдПрдВрдб рд╡рд┐рдзрд┐ foo (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреИрд░рд╛рдореАрдЯрд░ рд╕рддреНрдпрд╛рдкрди, рдпрд╛ рдпрд╣ рдХрд╛рд░рдг рдХрд┐ рдХреБрдЫ kind рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╣реЛрдВрдЧреЗ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ)ред

рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЙрдирдХреЗ рдмреАрдЪ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдк-рд╡рд░реНрдЧреАрдХрд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдирдкреНрд▓реЙрдЯ (рдПрдордкреАрдПрд▓рдкреНрд▓реЙрдЯ) рдореЗрдВ рд╣реИ, рд╣реИ рдирд╛? рдФрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдореВрд░реНрдд рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рд╣рд╛рдБ рдпрд╝рд╣ рд╕рд╣реА рд╣реИрдВред рдЕрдзрд┐рдХ рдареЛрд╕ рд░реВрдк рд╕реЗ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛:

class MPL1dPlot(MPLPlot):

    def _some_shared_method(self, ...):
        ...

class LinePlot(MPL1dPlot):
    ...

class AreaPlot(MPL1dPlot):
    ...

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ред

рдПрдХ рд╕рд░рд▓ рдПрдкреАрдЖрдИ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЬреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм https://github.com/pandas-dev/pandas/pull/27009 рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ

рдмреИрдХрдПрдВрдб рд╡рд┐рдХрд▓реНрдк рдЕрдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди/рдЯрд┐рдкреНрдкрдгреАред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВ pdvega рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ рдФрд░ рдЗрд╕ рдмреИрдХрдПрдВрдб рдХреЛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реВрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ pd.options.plotting.backend = 'pdvega' , рддреЛ pdvega рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп plot рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
1) рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рдЖрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЕрд░реНрдерд╛рдд, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп plot рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ 2) рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ pd.options.plotting.backend = 'altair' рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? (рдпрджрд┐ рдЕрд▓реНрдЯреЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИрдВ)
рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдореЗрд░рд╛ рдкреНрд░рд╢реНрди рд╣реИ: рдХреНрдпрд╛ рдмреИрдХрдПрдВрдб рдирд╛рдо рдкрд░ рд╕рдЯреАрдХ 1:1 рдореИрдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? (рдЬрд┐рд╕рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рдкреНрд░рджрддреНрдд рдмреИрдХрдПрдВрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ)ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреАрдЖрд░ #26753 . рдореЗрдВ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА

рдпрджрд┐ рд╣рдо рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╛рдВрдбрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛/рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рд╕реЗ рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ), рддреЛ рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдмреИрдХрдПрдВрдб рдореЗрдВ рдХреИрд╕реЗ/рдХреНрдпрд╛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред

рдЬрд┐рд╕ рдкреАрдЖрд░ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдФрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХрд▓реНрдк plotting.backend рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ pdvega , altair , altair.pandas , рдпрд╛ рдЬреЛ рднреА рд╣реЛ), рдФрд░ рдЙрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ plot рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕реЗ рд╣рдо рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред

рд╣рдо рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдпрджрд┐ рд╡рд┐рдХрд▓реНрдк pdvega , рддреЛ рд╣рдо pdvega.pandas рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ plot_pandas рдпрд╛ рдЬреЛ рднреА рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрд░реАрдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕реЗ рдЕрдиреНрдп рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИрдВ рдЬреЛ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдПрдХ рдЕрдиреНрдп рдЪрд░реНрдЪрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмреИрдХрдПрдВрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

import pandas
import hvplot

pandas.Series([1, 2, 3]).plot()

рдпрджрд┐ рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореЙрдбреНрдпреВрд▓ рдЦреБрдж рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рдЙрдкрдирд╛рдо рднреА рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП set_option рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдирд╛рдореЛрдВ рдХреЛ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ)ред рд╡реЗ рдХреБрдЫ рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рдкреНрд▓реЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рдпрд╛ рдорд╢реАрдирд░реА (рдЬреИрд╕реЗ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ) рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,... рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд░рдЦрддреЗ рд╣реИрдВ рдЙрддрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдФрд░ рдЬрдмрдХрд┐ рдмреЛрдХреЗрд╣ рдореЗрдВ рдкреНрд▓реЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pandas.set_option('plotting.backend', 'bokeh') рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рджреЛ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИрдВ:

  • pandas.set_option('plotting.backend', 'bokeh') рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм import pandas_bokeh рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдФрд░ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред
  • рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рдпрд╣ рднреА рд╣реИ рдХрд┐ bokeh рдореЗрдВ рдкреНрд▓реЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЬреЛ рд╕рдЪ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реАрдзреЗ рдмреЛрдХреЗ рдХреЗ рд╕рд╛рде рд╕рд╛рдЬрд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рди рдХрд┐ рдмреЛрдХреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдВрдбрд╛ рдХреЗ рд╕рд╛рдеред

@datapythonista рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рдЕрднреА рд░рдЦрдиреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВ рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рд╣реИ (рдЙрдкрдирд╛рдо рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣рдореЗрд╢рд╛ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИ)ред

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЪрд╡реАрдкреНрд▓реЙрдЯ рдХреА рдПрдВрдбреНрд░рдпреВ рдХреА рд╡рдХреНрд░ рд╕рд╛рдЬрд┐рд╢ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдПрдЪрд╡реАрдкреНрд▓реЙрдЯ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡рд╣рд╛рдВ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

+1, рдореИрдВ рдмреИрдХрдПрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рднреА рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ pandas.plotting.matplotlib рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрд┐рдЫрдбрд╝рд╛ рдЕрд╕рдВрдЧрдд рдмреНрд░реЗрдХ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ (рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рди рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдирд╛ рд╣реИ)ред

pandas.set_option('plotting.backend', 'bokeh') рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм import pandas_bokeh рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдФрд░ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рд╣рдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ: рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдкрдВрдЬреАрдХреГрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рдкрд╛рдВрдбрд╛ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд▓реНрдЯреЗрдпрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рдПрдХ рдмрд╛рд░ рдпрд╣ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╢рд╛рдпрдж pdvega рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рдХреЛ pandas_altair рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдПрдХ рдирдП рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреВрдВрдЧрд╛ред

@datapythonista рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ 0.25.0 рд╕реЗ рдкрд╣рд▓реЗ рдмреИрдХрдПрдВрдб рдПрдкреАрдЖрдИ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдлреИрд╕рд▓рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрд░рд╕реА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ)ред

рдЖрдк рд╡рд┐рд╡рд┐рдз рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ (рд╕рд╛рде рд╣реА рд╣рд┐рд╕реНрдЯ / рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ) рд░рдЦрдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИрдВ?

@datapythonista рдиреЗ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ PR рдХрд╛ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдерд╛?

@jreback рдореИрдВ рдЗрд╕реЗ рддрдм рддрдХ рдЦреБрд▓рд╛ рдЬрд╛рддреЗ , @TomAugspurger рдФрд░ @jorisvandenbossche рдПрдХреНрд╕реЗрд╕рд░ рдкреНрд▓реЙрдЯреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдмреИрдХрдПрдВрдб рдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ

рдкрдВрдбреЛрдВ рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреНрдпрд╛ рдХрд░реВрдВрдЧрд╛ - рдмреИрдХрдПрдВрдб рдЕрдЧрд▓рд╛ рд╣реИред

рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП:

  • рдЪреАрдЬреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬреИрд╕реЗ рд╡реЗ рд╣реИрдВ, рдПрдЪрд╡реАрдкреНрд▓реЙрдЯ рд╕рднреА рднреВрдЦрдВрдбреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рд╕реЗ рд╡рд╛рд▓реЗ рдФрд░ рдЬреЛ рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рд╕реМрдВрдкрдирд╛ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд░рд▓ рд░рдЦрддрд╛ рд╣реИред
  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЙрдкрд░реЛрдХреНрдд register_converters рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреВрдВрдЧрд╛ред рдХрдо рд╕реЗ рдХрдо рд╣рдореЗрдВ register_matplotlib_converters рд╕реЗ рдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпрд╛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реМрдВрдкрддреЗ рд╣реИрдВ

рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП:

  • рдореИрдВ рд╕рднреА рдбреБрдкреНрд▓реАрдХреЗрдЯ pandas.plotting.boxplot , Series.hist ,...
  • рдореИрдВ рдПрдХреНрд╕реЗрд╕рд░реНрд╕ (andrew_curves, radviz, parallel_curves,...) рд╕реЗ рдмреБрд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рднреВрдЦрдВрдбреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреВрдВрдЧрд╛ред

рдмреИрдХрдПрдВрдб рдПрдкреАрдЖрдИ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдм рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЬреЛ рдХреБрдЫ рднреА рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рдЕрдзрд┐рдХ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╛рдж рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рд╣рдЯрд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЙрди рд╕рднреА рд╡рд┐рд╡рд┐рдз рднреВрдЦрдВрдбреЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕рд░ рдореЗрдВ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рдКрдВрдЧрд╛ (рдХреБрдЫ рдЕрдкрд╡рд╛рдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рд╕реНрдХреИрдЯрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕), IMO the andrew_curves рдФрд░ radviz рдЖрджрд┐ рдПрдХ рд╡рд┐рдзрд┐ "рд▓рд╛рдпрдХ" рдирд╣реАрдВ рд╣реИрдВред

рдЙрд╕ рдиреЗ рдХрд╣рд╛: рдХреНрдпрд╛ рд╣рдо рдмреИрдХрдПрдВрдб рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд "рдкреНрд░рдХрд╛рд░" рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдкрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреМрди рд╕реЗ рдПрдХреНрд╕реЗрд╕рд░ рддрд░реАрдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд kind рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рднреА рд╣рдо рдЗрд╕реЗ рдХрд╕реНрдЯрдо __getattribute__ рд╕рд╛рде рдмреИрдХрдПрдВрдб plot рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЪреАрдЬреЗрдВ рд╡реИрд╕реА рдХреНрдпреЛрдВ рд╣реИрдВ рдЬреИрд╕реА рдЕрднреА рд╣реИрдВред рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣рд╛рдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдЪрд░реНрдЪрд╛ рдХреЛ рд╕рдореГрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рдкрд╣рд▓рд╛ рдирд┐рд░реНрдгрдп matplotlib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдХреЛрдб рдХреЛ рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ ( pandas.plotting._matplotlib ) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рд╡рд╣ рдореЙрдбреНрдпреВрд▓ рдХрд┐рд╕реА рддрд░рд╣ matplotlib рдмреИрдХрдПрдВрдб рдмрди рдЧрдпрд╛ред

pandas.plotting рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдерд╛, рдЙрд╕реЗ рд╡рд╣рд╛рдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рд╣рд░ рдПрдХ, рдЬрд┐рд╕реЗ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдмреИрдХрдПрдВрдб рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ ( _get_plot_backend рдХреЙрд▓ рдХрд░реЗрдВ) рдФрд░ рдпрд╣ рд╡рд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╡рд╣реА рддрд░реАрдХреЗ рдФрд░ рдХрд╛рд░реНрдп рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд╣рдо рдХреБрдЫ рднреА рдирдпрд╛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рд╣рдо рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ andrew_curves рдЬреИрд╕реЗ рдореМрдЬреВрджрд╛ рдкреНрд▓реЙрдЯ рдХреЛ рдмреИрдХрдПрдВрдб рдХреЛ рдирд╣реАрдВ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдмреИрдХрдПрдВрдб рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЕрднреА рднреА рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдмреИрдХрдПрдВрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХрдо рд╕реЗ рдХрдо hvplot рдкрд╣рд▓реЗ рд╕реЗ рд╣реА andrew_curves рд▓рд╛рдЧреВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ andrew_curves рдкреНрд▓реЙрдЯ matplotlib рдореЗрдВ рдмреИрдХрдПрдВрдб рдХреЛ рди рдмрджрд▓рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ (рдпрд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдпрджрд┐ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЬреЛ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ, рд╡рд╣ рдХреЗрд╡рд▓ рдкрд╛рдВрдбрд╛ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝рдХрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдХрдард┐рди рдмрдирд╛ рджреЗрдЧрд╛ред

рдпрджрд┐ рд╣рдо рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдмрдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрди рднреВрдЦрдВрдбреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЗрддрдиреА рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрд░реНрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ?), рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЪрдпрдирд┐рдд рдмреИрдХрдПрдВрдб рдореЗрдВ рдЧрд╛рдпрдм рдХреБрдЫ рднреА matplotlib рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ?

рдмреИрдХрдПрдВрдб рдХреЛ рдХрд┐рд╕реА рднреА рдЕрдЬреНрдЮрд╛рдд рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╛рдЬрд┐рд╢ рдХреЛ рд╕реМрдВрдкрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХрд░рдиреЗ рдкрд░ -1 рд╣реВрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдЕрдВрддрддрдГ рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрдВрдбреЛрдВ рдореЗрдВ рдХрдИ рдкреНрд▓реЙрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдРрд╕реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдереЛрдбрд╝рд╛ рд╣реИрдХреА рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлреАрдбрдмреИрдХ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреИрдХрдПрдВрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордп рд╣реИред

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ matplotlib рдореЗрдВ рдПрдХ andrew_curves рдкреНрд▓реЙрдЯ рдмреИрдХрдПрдВрдб рдХреЛ рди рдмрджрд▓рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ (рдпрд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдпрджрд┐ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЬреЛ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ, рд╡рд╣ рдХреЗрд╡рд▓ рдкрд╛рдВрдбрд╛ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝рдХрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдХрдард┐рди рдмрдирд╛ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЬреАрд╡рди рдХреЛ рдХрдард┐рди рдмрдирд╛ рджреЗрдВрдЧреЗред рдЗрд╕реЗ рдкрд╛рдВрдбрд╛ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдпред рдкреНрд▓реЙрдЯрд┐рдВрдЧ, рдЕрдЧрд░ рд╡реЗ рдПрдХ рдПрдЪрд╡реАрдкреНрд▓реЙрдЯ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреЛ DataFrame.plot рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХрд╛ рдпрд╣реА рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИред

рдЕрдЧрд░ рд╣рдо рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрди рдкреНрд▓реЙрдЯреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЗрддрдиреА рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдпрд╛ рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИ рдпрджрд┐ рдмреИрдХрдПрдВрдб рд╕рднреА рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдкреНрд░рдХрд╛рд░реЛрдВ, рдЖрдИрдПрдордУ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ), рдмрд▓реНрдХрд┐ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдмреИрдХрдПрдВрдб рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ, рдЬреЛ рдЦреБрдж рдХреЛ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред .
рдЕрдЧрд░ рд╣рдо рдкрдВрдбреЛрдВ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЙрди рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдмреИрдХрдПрдВрдб рдПрдкреАрдЖрдИ рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХреЗ рд╕рд╛рде рд╣рдо рдХреБрдЫ рдирдпрд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд░рд╛рдп?

@jorisvandenbossche рд╕реЗ рд╕рд╣рдорддред


рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЦреЛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @jakevdp рдХреЗ рд╕реЗрдЯрдЕрдкрдЯреВрд▓ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдЖрдпрд╛рдд рдЖрджреЗрд╢ рдкрдВрдЬреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ: https://github.com/pandas-dev/pandas/issues/26747 # рдЗрд╢реНрдпреВ

@jorisvandenbossche рдЖрдк рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ

рдЪреВрдВрдХрд┐ рдЖрдк рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдкрд╛рдВрдбрд╛ рдореЗрдВ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╣рдо рдЙрди рднреВрдЦрдВрдбреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпрд╛ рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВ рдЙрди рд╕рднреА рднреВрдЦрдВрдбреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ +1 рд╣реВрдВ рдЬреЛ Series рдпрд╛ DataFrame рддрд░реАрдХреЛрдВ рдХреЛ рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ рдкреИрдХреЗрдЬ рдореЗрдВ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╛ рдпрджрд┐ рдХреЛрдИ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ .plot() рд╕рд╛рде рдмреБрд▓рд╛рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдореИрдВ рдкрд╛рдВрдбрд╛ рдореЗрдВ рдЧреИрд░ рдорд╛рдирдХ рднреВрдЦрдВрдбреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛
рдФрд░ рдПрдХ рдмрд╛рд╣рд░реА рдкреИрдХреЗрдЬ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдБ

рдЬреЛрд░рд┐рд╕ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдСрдлрд▓рд╛рдЗрди рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдордиреЗ рдЕрддреАрдд рдореЗрдВ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ, рддреЛ рдЙрдирдХреА рдФрд░ рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рд╡реЗ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рдмреЛрдЭ рди рдмрди рдЬрд╛рдПрдВ, рддрдм рддрдХ рдЙрдиреНрд╣реЗрдВ рдЕрдЫреВрддрд╛ рдЫреЛрдбрд╝ рджреЗрдВред

рдЬреИрд╕реЗ рд╣рдо рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рдХреБрдЫ рд╣реИ рдЙрд╕рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ, рдФрд░ рдЪрд░реНрдЪрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рд╣реИ:

Series рдФрд░ DataFrame рддрд░реАрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • рдкреНрд▓реЙрдЯ рдПрдХреНрд╕реЗрд╕рд░
  • рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ_рдлреНрд░реЗрдо
  • рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ_рдлреНрд░реЗрдо_рдЧреНрд░реБрдкрдмреА
  • рд╣рд┐рд╕реНрдЯ_рдлреНрд░реЗрдо
  • рдЗрддрд┐рд╣рд╛рд╕_рд╢реНрд░реГрдВрдЦрд▓рд╛

рдЕрдиреНрдп рднреВрдЦрдВрдб (рдЪрд░реНрдЪрд╛ рдХреЗ рддрд╣рдд рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдмреИрдХрдПрдВрдб рдХреЛ рдкреНрд░рддреНрдпрд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЪрдпрдирд┐рдд рдмреИрдХрдПрдВрдб рдХреЛ рдкреНрд░рддреНрдпрд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП):

  • рд░реЗрдЦрд╛ - рдЪрд┐рддреНрд░
  • рд╕реНрдХреИрдЯрд░_рдореИрдЯреНрд░рд┐рдХреНрд╕
  • рд░реЗрдбрд╡рд┐рдЬрд╝
  • рдПрдВрдбреНрд░рдпреВрдЬ_рдХрд░реНрд╡реНрд╕
  • рдмреВрдЯрд╕реНрдЯреНрд░реИрдк_рдкреНрд▓реЙрдЯ
  • рд╕рдорд╛рдирд╛рдВрддрд░_рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
  • lag_plot
  • рдСрдЯреЛрд╕рд╣рд╕рдВрдмрдВрдз_рдкреНрд▓реЙрдЯ
  • рдЯреЗрдмрд▓

pandas.plotting рдореЗрдВ рдЕрдиреНрдп рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд╛рдордЧреНрд░реА (рдЪрд░реНрдЪрд╛ рдХреЗ рддрд╣рдд рднреА):

  • рдкреНрд▓реЙрдЯ_рдкрд░рдореНрд╕
  • register_matplotlib_converters
  • deregister_matplotlib_converters

Other plots рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рд░рдЦрд░рдЦрд╛рд╡ рдмреЛрдЭ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкрд╛рдВрдбрд╛ рд╕реЗ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рдиреЗ рдкрд░ +1 рд╣реВрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ 0.25 рдореЗрдВ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВред

рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдФрд░ рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ register_matplotlib_converters рдЪрдпрдирд┐рдд рдкреНрд▓реЙрдЯ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИрдВ, рдЬреЛ рдХрд┐ matplotlib рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡реЗ рд╣реИрдВ:

  • рдЙрдирдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ register_converters / deregister_converters , рд╡рд░реНрддрдорд╛рди рд╡рд╛рд▓реЗ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдФрд░ рдмреИрдХрдПрдВрдб рдХреЛ рд╕реМрдВрдкрддреЗ рд░рд╣реЗрдВ
  • рдЙрдиреНрд╣реЗрдВ pandas.plotting рд╕реЗ pandas.plotting.matplotlib (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ matplotlib рдмреИрдХрдПрдВрдб рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░рдирд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛)
  • рдЙрдиреНрд╣реЗрдВ рд╡реИрд╕реЗ рд╣реА рдЫреЛрдбрд╝ рджреЗрдВ, рдФрд░ рдЪрдпрдирд┐рдд рдмреИрдХрдПрдВрдб рдХреЗ рдмрдЬрд╛рдп matplotlib рдмреИрдХрдПрдВрдб рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рджреЗрдВ (рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЕрдЪреНрдЫреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдгрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣реИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдореИрдВ pandas.plotting рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдмреИрдХрдПрдВрдб рдореМрдЬреВрдж рд╣реИрдВ)

рдЕрдиреНрдп рднреВрдЦрдВрдбреЛрдВ рдХреЗ рдЦрдВрдб рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рдмреЛрдЭ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкрд╛рдВрдбрд╛ рд╕реЗ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рдиреЗ рдкрд░ +1 рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ 0.25 рдореЗрдВ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВред

рдЖрдк "рдЕрдиреНрдп рднреВрдЦрдВрдбреЛрдВ" рдХреЛ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рдмреЛрдЭ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╕реЗ рдкрд╛рддреЗ рд╣реИрдВ? "рд╡рд┐рд╡рд┐рдз" рднреВрдЦрдВрдбреЛрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП: https://github.com/pandas-dev/pandas/commits/0.24.x/pandas/plotting/_misc.py , рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2017 рд╕реЗ ~10-15 рдХрдорд┐рдЯ рд╣реИрдВред рдмрд╣реБрд╕рдВрдЦреНрдпрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдХреНрд▓реАрдирдЕрдк рд╣реИрдВ рдЬреЛ рдкреВрд░реЗ рдХреЛрдбрдмреЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕реАрдорд╛рдВрдд рдмреЛрдЭ)ред рдореИрдВ рдХреЗрд╡рд▓ 1-2 рдмрджрд▓рддреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдФрд░ рдХреЛрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрджрд▓рддреА рдирд╣реАрдВ рд╣реИред

рдЙрдирдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ register_converters/deregister_converters рдХрд░ рджреЗрдВ, рд╡рд░реНрддрдорд╛рди рд╡рд╛рд▓реЗ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдФрд░ рдмреИрдХрдПрдВрдб рдХреЛ рд╕реМрдВрдкрддреЗ рд░рд╣реЗрдВ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реЛрдЧрд╛ред matplotlib- рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ matplotlib рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рд╣реИред рдЕрдиреНрдп рдмреИрдХрдПрдВрдб рдЙрдирдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдпрд╣ рд╢рд╛рдпрдж рдмреИрдХрдПрдВрдб рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рдХрд╛рд░рдг рд╡реЗ рднреВрдЦрдВрдб рдмреЛрдЭ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╡реЗ рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╕рдВрдЧрдд рдФрд░ рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдПрдкреАрдЖрдИ рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдореЙрдбреНрдпреВрд▓рд░ рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдб рдбрд┐рдЬрд╛рдЗрдиред

рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдмреИрдХрдПрдВрдб рд▓реЗрдЦрдХ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ matplotlib рдХреЗ рд╕рдордХрдХреНрд╖ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ, рдФрд░ рд╡реЗ рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ рдпрд╛ рд╕рднреА рдЕрдиреНрдп рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рд╡рд┐рдХрд▓реНрдк 2 рдХреЗ рд╕рд╛рде рднреА рдареАрдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдЙрддрдирд╛ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред

рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╡реЗ рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╕рдВрдЧрдд рдФрд░ рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдПрдкреАрдЖрдИ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдореЙрдбреНрдпреВрд▓рд░ рдХреЛрдб рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВред

рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╣рдж рддрдХ DataFrame.plot рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рдирд╛рдо "рд╡рд┐рд╡рд┐рдз" рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ :) рдХреНрдпрд╛ рдПрдХ рд╕реНрд╡реИрдкреЗрдмрд▓ рдмреИрдХрдПрдВрдб рд╣реЛрдиреЗ рд╕реЗ рдпрд╣ рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ? рдЗрд╕ рд╣рдж рддрдХ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдкрд░ рдордВрдерди рдХреЗ рд▓рд╛рдпрдХ рд╣реИ? рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдмреИрдХрдПрдВрдб рд▓реЗрдЦрдХ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ matplotlib рдХреЗ рд╕рдордХрдХреНрд╖ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред рдЙрди рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкрдВрдбреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ matplotlib рдХреЛ рдкрдврд╝рд╛рдирд╛ рд╣реИред рдмреИрдХрдПрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╡рд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдВрдбрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВред рдПрдХ рдорд╛рдирдХ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдПрдкреАрдЖрдИ рдЬреЛ рдПрдХ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреИрдХрдПрдВрдб рдХреЛ рд╕реМрдВрдкреА рдЬрд╛рддреА рд╣реИ, рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ plot рдПрдХ kind рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдФрд░ рдпрд╣ рдЪрдпрдирд┐рдд рдмреИрдХрдПрдВрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдмреИрдХрдПрдВрдб рдореЗрдВ рд╡рд┐рд╖рдо рднреВрдЦрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╣реА рдПрдкреАрдЖрдИ рдХрд╛ рдкрд╛рд▓рди рди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рднреВрдЦрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрдпрдирд┐рдд рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдПрдХ, рд╕рднреА IMHO рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдореБрдЭреЗ рдЫреЛрдЯреА рд▓рдЧрддреА рд╣реИ, рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЙрди рднреВрдЦрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдФрд░ рдЬреЛ рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП, рд╡реЗ рд╕рд┐рд░реНрдл рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд conda рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ import pandas_plotting; pandas_plotting.andrews_curves(df) рдХреЗ рдмрдЬрд╛рдп pandas.plotting.andrews_curves(df) ред

рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд╕реА рдХреАрдордд рдкрд░ рдЬреАрддрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд░рд╛рдп рд╣реИред

рдХреНрдпрд╛ рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрд╡реИрдкреЗрдмрд▓ рдмреИрдХрдПрдВрдб рд╕рд┐рд░реНрдл Series/DataFrame.plot рдХреЗ рд▓рд┐рдП рд╣реИ? рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдирд┐рдпрдо рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдПрдХ рд╣реИрдХ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ; рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╕рдордЭрд╛рдиреЗ рд╕реЗ рдпрд╣ рдХрдо рдкреНрд░рддрд┐-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╡реИрд╕реЗ рднреА, рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдпрд╣ рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВрдВрдЧрд╛, рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдиреНрдпреВрдирддрдо рд╣реИ: #27432

рдЕрдм рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ: рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдмреИрдХрдПрдВрдб рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╡рд╣ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:

pd.set_option('plotting.backend', 'name_of_module')

рддрдм рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ:

pd.set_option('plotting.backend', 'altair')

рддреЛ рдореБрдЭреЗ https://github.com/pandas-dev/pandas/blob/master/pandas/plotting/_core.py рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЕрд▓реНрдЯреЗрдпрд░ рдкреИрдХреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА

рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП pd.set_option('plotting.backend', 'altair') рдХреЛ рдкрд╛рдВрдбрд╛ рдореЗрдВ рдЕрд▓реНрдЯреЗрдпрд░ рдкреИрдХреЗрдЬ рдХреЛ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдВрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ matplotlib рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?

https://github.com/pandas-dev/pandas/blob/f1b9fc1fab93caa59aebcc738eed7813d9bd92ee/pandas/plotting/_core.py#L1550 -L1551

рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рдЙрди рддрд░реАрдХреЛрдВ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдПрдкреАрдЖрдИ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рд╣реБрдИ рд╣реИред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рдврд╛рдВрдЪреЗ рдХреЛ рдЕрдкрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдореБрдЭреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, altair_pandas рдЬреИрд╕рд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рджреЗрдЧрд╛ рдЬреЛ рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП altair рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рд░рд╣реЗрдВрдЧреЗ рдХрд┐ pd.set_option('plotting.backend', 'altair') рд╡рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрд┐рд╕рдХреА рд╡реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдорд╛рдирд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИред рдореИрдВ рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░реВрдБрдЧрд╛ред

рд╢реБрдХреНрд░рд╡рд╛рд░, 19 рдЬреБрд▓рд╛рдИ 2019 рдХреЛ рджреЛрдкрд╣рд░ 1:16 рдмрдЬреЗ рдЬреЗрдХ рд╡реЗрдВрдбрд░рдкреНрд▓рд╛рд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдЕрдм рдЗрд╕ рдкрд░ рдФрд░ рдХрд░реАрдм рд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ: рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ
рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдмреИрдХрдПрдВрдб рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:

pd.set_option('plotting.backend', 'name_of_module')

рддрдм рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ:

pd.set_option('plotting.backend', 'altair')

рддреЛ рдореБрдЭреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЕрд▓реНрдЯреЗрдпрд░ рдкреИрдХреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рдореЗрдВ
https://github.com/pandas-dev/pandas/blob/master/pandas/plotting/_core.pyред
рдореИрдВ рдЗрди рд╕рднреА рдХреЗ рд╕рд╛рде рдЕрд▓реНрдЯреЗрдпрд░ рдХреЗ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛
рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдкреАрдЖрдИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЕрд▓реНрдЯреЗрдпрд░ рдХреЗ рдкрд╛рдВрдбрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛
рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗ рд░рд┐рд▓реАрдЬ рддрд╛рд▓ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИ
рдЕрд▓реНрдЯреЗрдпрд░ рд╣реАред

рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП pd.set_option('plotting.backend',
'altair') рдкрд╛рдВрдбрд╛ рдореЗрдВ рдЕрд▓реНрдЯреЗрдпрд░ рдкреИрдХреЗрдЬ рдХреЛ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдВрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ matplotlib рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?

рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ
рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреИрдХреЗрдЬред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ-рдЖрдзрд╛рд░рд┐рдд рдврд╛рдВрдЪреЗ рдХреЛ рдЕрдкрдирд╛рдирд╛
рдореБрдЭреЗ altair_pandas рдЬреИрд╕рд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рджреЗрдЧрд╛ рдЬреЛ altair рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ
рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБред рдЕрдиреНрдпрдерд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдореЗрд╢рд╛ рднреНрд░рдорд┐рдд рд░рд╣реЗрдВрдЧреЗ рдХрд┐ pd.set_option('plotting.backend',
'altair') рд╡рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрд┐рд╕рдХреА рд╡реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pandas-dev/pandas/issues/26747?email_source=notifications&email_token=AAKAOITQM7HH5X4SZ4IAPS3QAIAIBA5CNFSM4HWIMEK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63#рдЗрд╢реНрдпреВ :
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAKAOISFLHDGXLGQ3PUMNLDQAIAIBANCNFSM4HWIMEKQ
.

рдПрдХ рд╕рдордп рдерд╛ рдЬрдм рдЖрдк рдЬреЛ рдХрд╣рддреЗ рдереЗ рд╡рд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рд╣реА рд╣реЛрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдк pandas.options.plotting.backend = 'altair' , рддреЛ 0.25 рдореЗрдВ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ altair.plot() рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХреЗрд╡рд▓ plot рдмрдЬрд╛рдп рдлрд╝рдВрдХреНрд╢рди pandas_plot рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмреИрдХрдПрдВрдб рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдереАрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрдВрддрддрдГ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдпрджрд┐ рдЕрд▓реНрдЯреЗрдпрд░ рдХреЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдореЗрдВ plot рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ altair.pandas.plot , рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ pandas.options.plotting.backend = 'altair.pandas' рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ import altair рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕реНрд╡рдпрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рдмреИрдХрдПрдВрдб рдХреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ pandas.options.plotting.backend = 'altair' рдФрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ import altair рднреВрд▓ рдЧрдП рдереЗред

рдПрдХ рдЖрдЦрд┐рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╕рдВрднрд╡рддрдГ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкрд╛рдВрдбрд╛ рдмреИрдХрдПрдВрдб рдХреЛ рдЕрд▓реНрдЯреЗрдпрд░ (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ, рдореЗрд░реЗ рд▓рд┐рдП, рдмреИрдХрдПрдВрдб рдХрд╛ рдирд╛рдо altair рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдПрдХ рдмреБрд░реА рдЪреАрдЬ рд╣реИред

рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рд╡реЗрд╢-рдмрд┐рдВрджреБ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ

diff --git a/pandas/plotting/_core.py b/pandas/plotting/_core.py
index 0610780ed..c8ac12901 100644
--- a/pandas/plotting/_core.py
+++ b/pandas/plotting/_core.py
@@ -1532,8 +1532,10 @@ class PlotAccessor(PandasObject):

         return self(kind="hexbin", x=x, y=y, C=C, **kwargs)

+_backends = {}

-def _get_plot_backend(backend=None):
+
+def _get_plot_backend(backend="matplotlib"):
     """
     Return the plotting backend to use (e.g. `pandas.plotting._matplotlib`).

@@ -1546,7 +1548,14 @@ def _get_plot_backend(backend=None):
     The backend is imported lazily, as matplotlib is a soft dependency, and
     pandas can be used without it being installed.
     """
-    backend_str = backend or pandas.get_option("plotting.backend")
-    if backend_str == "matplotlib":
-        backend_str = "pandas.plotting._matplotlib"
-    return importlib.import_module(backend_str)
+    import pkg_resources  # slow import. Delay
+    if backend in _backends:
+        return _backends[backend]
+
+    for entry_point in pkg_resources.iter_entry_points("pandas_plotting_backends"):
+        _backends[entry_point.name] = entry_point.load()
+
+    try:
+        return _backends[backend]
+    except KeyError:
+        raise ValueError("No backend {}".format(backend))
diff --git a/setup.py b/setup.py
index 53e12da53..d2c6b18b8 100755
--- a/setup.py
+++ b/setup.py
@@ -830,5 +830,10 @@ setup(
             "hypothesis>=3.58",
         ]
     },
+    entry_points={
+        "pandas_plotting_backends": [
+            "matplotlib = pandas:plotting._matplotlib",
+        ],
+    },
     **setuptools_kwargs
 )

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред рддреГрддреАрдп рдкрдХреНрд╖ рдкреИрдХреЗрдЬ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ setup.py (рдпрд╛ pyproject.toml) рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ

entry_points={
    "pandas_plotting_backends": ["altair = pdvega._pandas_plotting_backend"]
}

рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдпрд╣ рдирд╛рдордХрд░рдг рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмреАрдЪ рддрдВрдЧ рдпреБрдЧреНрдорди рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпрд╛ рд╡реЗ рдкрд╛рдпрдерди рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╡реИрд╢реНрд╡рд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреА рддрд░рд╣ рд╣реИрдВ? рдЙрдирдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рдЕрднреА рднреА рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ pandas.options.plottting.backend = 'my_own_project.my_custom_small_backend' рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдореИрдВрдиреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпрд╛ рд╡реЗ рдкрд╛рдпрдерди рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╡реИрд╢реНрд╡рд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреА рддрд░рд╣ рд╣реИрдВ?

рдореИрдВрдиреЗ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИред рдЬреЛ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╡реЗ рд╕реЗрдЯрдкреВрд▓ рд╕реЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рдлреНрд▓рд┐рдЯ рд╣реБрдХ рдЬреИрд╕реЗ рдкреИрдХреЗрдЬ?) рдЗрд╕рд▓рд┐рдП рд╡реЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реЗрдЯрдкреНрдЯреВрд▓ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рд░ рдХреЛрдИ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЕрдм рднреА рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛

import_module(backend_name) рдЧрд┐рд░рдирд╛ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ebran picture ebran  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

marcelnem picture marcelnem  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

amelio-vazquez-reina picture amelio-vazquez-reina  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Abrosimov-a-a picture Abrosimov-a-a  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

andreas-thomik picture andreas-thomik  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ