2016-05-03 7 views
0

Я хотел бы сделать красивый разброс участков с гистограмм выше и справа от диаграммы рассеяния, как можно в Сиборн с jointplot:Matplotlib: построение гистограммы чуть выше диаграммы рассеяния

seaborn jointplot

Я ища предложения о том, как этого достичь. На самом деле у меня возникли некоторые проблемы с установкой панд, а также мне не нужен весь модуль Сиборн

+1

Чтобы быть ясно, ваш вопрос заключается в том, как реализовать 'sns.jointplot' в vanilla matplotlib? – wflynny

+0

более или менее. мой вопрос заключается в том, как поместить еще одну коробку над диаграммой рассеяния, поэтому я могу нарисовать гистограмму там – simona

+1

Отметьте ['matplotlib.gridspec.GridSpec'] (http://matplotlib.org/users/gridspec.html#gridspec-with -частичные размеры), в частности пример внизу. Без gridspec вы можете следовать этому [ясный пример] (http://matplotlib.org/examples/pylab_examples/scatter_hist.html) – wflynny

ответ

3

Вот пример того, как сделать это, используя gridspec.GridSpec:

import matplotlib.pyplot as plt 
from matplotlib.gridspec import GridSpec 
import numpy as np 

x = np.random.rand(50) 
y = np.random.rand(50) 

fig = plt.figure() 

gs = GridSpec(4,4) 

ax_joint = fig.add_subplot(gs[1:4,0:3]) 
ax_marg_x = fig.add_subplot(gs[0,0:3]) 
ax_marg_y = fig.add_subplot(gs[1:4,3]) 

ax_joint.scatter(x,y) 
ax_marg_x.hist(x) 
ax_marg_y.hist(y,orientation="horizontal") 

# Turn off tick labels on marginals 
plt.setp(ax_marg_x.get_xticklabels(), visible=False) 
plt.setp(ax_marg_y.get_yticklabels(), visible=False) 

# Set labels on joint 
ax_joint.set_xlabel('Joint x label') 
ax_joint.set_ylabel('Joint y label') 

# Set labels on marginals 
ax_marg_y.set_xlabel('Marginal x label') 
ax_marg_x.set_ylabel('Marginal y label') 
plt.show() 

enter image description here

+0

приятно, но как удалить галочки только с гистограмм (без подавления осей) и как я могу выборочно добавлять метки? – simona

+1

См. Здесь http://stackoverflow.com/questions/4209467/matplotlib-share-x-axis-but-dont-show-x-axis-tick-labels-for-both-just-one – tom

+0

или здесь http://matplotlib.org/examples/pylab_examples/shared_axis_demo.html – tom

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