Вопрос:
Я пытаюсь понять концепцию исправления обезьян и в то же время создать функцию для создания идеального временного рядасюжет.Как включить в pandas следующие функции matplotlib pandas.DataFrame.plot () ?
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
complete code at the end of the question
Подробности:
Я думаю, что настройки по умолчанию в df.plot()
довольно аккуратны, особенно если вы используете Jupyter Notebook с темной темой, такой как chesterish от dunovank :
![df.plot default](https://i.stack.imgur.com/pU3um.png)
И я бы хотел использовать его для максимально возможного анализа данных, но я бы хотелочень нравится удалять рамку (или то, что называется шипами), например:
![df.plot no frames](https://i.stack.imgur.com/yHPmP.png)
Возможно, это идеальный сюжет временного ряда.Но df.plot()
не имеет встроенного аргумента для этого.Самая близкая вещь, кажется, grid = False
, но это забирает всю сетку за один проход:
![enter image description here](https://i.stack.imgur.com/JaWnl.png)
ЧтоЯ пробовал
Я знаю, что могу обернуть фрагмент spine
в функцию вместе с df.plot()
, поэтому я получаю следующее:
Фрагмент 1:
def plotPerfect(df, spline):
ax = df.plot()
if not spline:
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
return(ax)
plotPerfect(df = df, spline = False)
Выход 1:
![enter image description here](https://i.stack.imgur.com/IlHae.png)
Но является ли это "лучший способ сделать это в отношении гибкости и удобочитаемости для будущих поправок?Или даже самое быстрое в отношении времени выполнения, если мы говорим о сотнях сюжетов?
Я знаю, как получить источник df.plot()
, но все оттуда сбивает меня с толку.Так как сделать Я включил эти настройки в df.plot
?И, возможно, подход обернутой функции так же хорош, как и исправление обезьян?
Фрагмент с полным кодом и примерами данных:
Воспроизвести пример100%, вставьте это в ячейку Jupyter Notebook с активированной chesterish theme
:
# imports
import pandas as pd
import numpy as np
from jupyterthemes import jtplot
# Sample data
np.random.seed(123)
rows = 50
dfx = pd.DataFrame(np.random.randint(90,110,size=(rows, 1)), columns=['Variable Y'])
dfy = pd.DataFrame(np.random.randint(25,68,size=(rows, 1)), columns=[' Variable X'])
df = pd.concat([dfx,dfy], axis = 1)
jtplot.style()
# Plot with default settings
df.plot()
# Wrap df.plot() and matplotlib spine in a function
def plotPerfect(df, spline):
ax = df.plot()
if not spline:
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
return(ax)
# Plot the perfect time-series plot
plotPerfect(df = df, spline = False)