在R
中,我们可以独立绘制每个图形,然后通过像gridExtra
这样的包轻松排列所有或部分图形。例如,
p1 <- ggplot(aes(x1,y1), data=df) + geom_point()
p2 <- ggplot(aes(x2,y2), data=df) + geom_point()
p3 <- ggplot(aes(x3,y3), data=df) + geom_point()
p4 <- ggplot(aes(x4,y4), data=df) + geom_point()
我绘制了4个图表,现在我只想将其中的2个并排进行分析,所以我可以
grid.arrange(p1, p2, ncol=1)
grid.arrange(p1, p3, ncol=1)
...
我发现这对于我们任意组合和排列独立图表非常方便。但是,我们可以使用Python
在matplotlib
中执行相同的操作吗?这里的一个大问题是,我不知道手头有多少图表,以及我想如何组合和排列它们。
答案 0 :(得分:0)
也许gridspec会对你有用吗?我用它来显示/生成不同的报告和摘要
http://matplotlib.org/users/gridspec.html
如果没有,可能是一个简单的任意比较包装器?
import matplotlib.pyplot as plt
def compare(data, fig, rows, cols ):
for i in range (0,len(data)):
plt.figure(fig)
plt.subplot(rows, cols, i+1)
plt.plot(data[i])
return
d1 = [1, 2, 3, 4]
d2 = [4, 3, 2, 1]
d3 = [4, 3, 3, 1]
d4 = [3, 4, 1, 2]
data = [d2,d1,d4]
# compare 4 horizontally
compare([d1, d2, d3, d4], fig=1, rows=1, cols=4)
# compare 4 vertically
compare([d1, d2, d3, d4], fig=2, rows=4, cols=1)
# compare 2 vertically
compare([d2, d3], fig=3, rows=2, cols=1)
# compare 3 horizontally
compare([d1, d2, d4], fig=4, rows=1, cols=3)
# compare 3 vertically
compare(data, fig=5, rows=3, cols=1)
plt.tight_layout()
plt.show()