2014-12-11 5 views
3

Я передаю tsplot список списков (скажем, с 31 пунктов в каждом из списков), и это показывает х-метки осей от 0 до 31.Сиборн этикетки изменения tsplot по оси х

Как я могу а вместо этого показать -15 до 15?

Пример из the tutorial, если его необходимо:

import numpy as np 
np.random.seed(9221999) 
import pandas as pd 
from scipy import stats, optimize 
import matplotlib.pyplot as plt 
import seaborn as sns 
sns.set(palette="Set2") 

def sine_wave(n_x, obs_err_sd=1.5, tp_err_sd=.3): 
    x = np.linspace(0, (n_x - 1)/2, n_x) 
    y = np.sin(x) + np.random.normal(0, obs_err_sd) + np.random.normal(0, tp_err_sd, n_x) 
    return y 

sines = np.array([sine_wave(31) for _ in range(20)]) 
sns.tsplot(sines); 

ответ

6

Вы можете сделать это следующим образом:

ax = sns.tsplot(sines);      # capture axis 
n = len(ax.xaxis.get_ticklabels())   # count labels 
ax.set_xticklabels(np.linspace(-15, 15, n)) # set new tick labels 

Edit: Предыдущее решение способ родового Matplotlib о манипулировании клеща этикетки , Как полагает создатель Сиборн в @mwaskom вы также можете сделать:

sns.tsplot(sines, time=np.linspace(-15, 15, sines.shape[1])) 

enter image description here

+5

Yep, хотя вы можете также передать ticklabels в 'time' аргумент' tsplot'. – mwaskom

+0

ой, не знал, спасибо за отличную библиотеку! – elyase

Смежные вопросы