Matplotlib / Seaborn双散点图,带有三个侧面直方图(扩展JointGrid)

时间:2015-06-15 09:18:34

标签: matplotlib plot histogram scatter-plot seaborn

我有三个数据集(data1,data2,data3),我想创建一个相当复杂的图:一个堆叠的散点图(两个散点图在彼此的顶部),边上有三个直方图。

这是我到目前为止的一套,下面你可以看到结果图:

from numpy.random import randn
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

data1 = randn(500)
data2 = randn(500) * 20
data3 = randn(500) + 5

e1c = sns.color_palette()[0]
e2c = sns.color_palette()[1]
e3c = sns.color_palette()[2]

with sns.axes_style("white"):
    g = sns.JointGrid(data2, data3)
    g.plot_marginals(sns.distplot, kde=False, color=e3c)
    g.plot_joint(plt.scatter, color=e3c, alpha=.2)

    plt.show()

resulting plot

现在和我需要制作的注释一样:

Annotated

为了使其更复杂,左右y轴(data1和data 3)具有不同的值范围。

总而言之,以下列出了我需要包含的内容:

  1. 另一种颜色e1c
  2. 的散点图(data2,data1)
  3. data1必须在左侧有一个直方图,颜色为e1c
  4. 所有直方图应该有更精细的箱子(比如,多5个箱子)。
  5. 顶部的直方图(data2)应为彩色e2c。
  6. 应该有两个y轴(一个用于data1,另一个用于data3)。
  7. 每个轴上都应有标签(“数据1”,......)。
  8. 如何做到这一点?

0 个答案:

没有答案