2015-06-17 2 views
1

Я перехожу из R в python и искал график средней линии двух переменных. Это график переменной x разбивается на интервалы для оси x и означает значение переменной y для оси y.matplotlib mean interval plot

Например, если у меня есть 1000 точек (x1, y1) - (x1000, y1000), и вы хотите построить на 3 бункера, у меня будет 3 бара x интервалов, каждый из которых будет иметь среднее значение y переменных которые попадают в этот соответствующий интервал.

Кто-нибудь знает, что называется этим сюжетом, и как я могу это сделать в python? В R я использую команду «cut», а затем рисую x, y разреза.

Спасибо!

ответ

1

Вот пример этого.

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 

# simulate some artificial data 
x = np.random.randn(1000,) 
y = 5 * x ** 2 + np.random.randn(1000,) 
data = pd.DataFrame(0.0, columns=['X', 'Y'], index=np.arange(1000)) 
data.X = x 
data.Y = y 

# now do your stuff 
# ================================ 
# use the pandas 'cut' function 
data['X_bins'] = pd.cut(data.X, 3) 
# for each bin, calculate the mean of Y 
result = data.groupby('X_bins')['Y'].mean() 
# do the plot 
result.plot() 

enter image description here

+0

удивительным, это именно то, что я искал - спасибо! Здесь немного, но знаете ли вы, как создавать диаграммы ошибок для очков? –

1

Для последующих вопросов, мы можем сделать что-то более мощное, используя boxplot.

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 

# simulate some artificial data 
x = np.random.randn(1000,) 
y = 5 * x ** 2 + np.random.randn(1000,) 
data = pd.DataFrame(0.0, columns=['X', 'Y'], index=np.arange(1000)) 
data.X = x 
data.Y = y 

# now do your stuff 
# ================================ 
# use the pandas 'cut' function 
data['X_bins'] = pd.cut(data.X, 3) 
data.set_index('X_bins', append=True, inplace=True) 
data.drop('X', axis=1, inplace=True) 
data.unstack(level=1).boxplot() 

enter image description here