如何在Jupyter单元中并排显示两个图形

时间:2020-10-04 19:41:07

标签: python jupyter-notebook

import pandas as pd
import seaborn as sns

# load data
df = sns.load_dataset('penguins', cache=False)

sns.scatterplot(data=df, x='bill_length_mm', y='bill_depth_mm', hue='sex')
plt.show()
sns.scatterplot(data=df, x='flipper_length_mm', y='body_mass_g', hue='sex')
plt.show()

当我在jupyter中的一个单元格中用seaborn绘制两个地块时,我得到以下视图:

enter image description here

我想像这样并排绘制图:

plot1 plot2

我应该怎么做?

已更新:

在一个图形上不是两个图,而是在两个单独的图形上是两个图。

  • 这不是要寻求的解决方案,因为它是一个图形上的两个图。
fig, ax = plt.subplots(1,2)
sns.plotType(someData, ax=ax[0])  # plot1
sns.plotType(someData, ax=ax[1])  # plot2
fig.show()
  • 建议的重复ipython notebook arrange plots horizontally中的解决方案不起作用
    • 带有%html的选项会导致图形相互绘制
    • 此外,其他选项适用于ipython,而不是Jupyter,或建议创建子图。

1 个答案:

答案 0 :(得分:2)

  • 这可能是最简单的解决方案。其他解决方案可能涉及破解Jupyter的后端环境。
  • 这个问题是关于并排显示两个图形。
    • 从代码单元并排执行的两个单独的图形不起作用。
  • 您将需要创建单独的图形,并使用plt.savefig('file.jpg')将每个图形保存到文件中。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# load data
df = sns.load_dataset('penguins', cache=False)

# create and save figure
sns.scatterplot(data=df, x='bill_length_mm', y='bill_depth_mm', hue='sex')
plt.savefig('bill.jpg')
plt.close()  # prevents figure from being displayed when code cell is executed

# create and save new figure
sns.scatterplot(data=df, x='flipper_length_mm', y='body_mass_g', hue='sex')
plt.savefig('flipper.jpg')
plt.close()  # prevents figure from being displayed when code cell is executed
  • 将图形保存到文件后,可以将它们加载到markdown单元中并排显示。
    • 如果图像太大,第二个数字将换行。

enter image description here

  • 然后执行单元格

enter image description here