在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)
...我发现这对于我们任意组合和排列独立的图是非常方便的。然而,我们能用matplotlib在Python中做同样的事情吗?这里最大的问题是,我不知道事先有多少个图,也不知道我想如何组合和排列它们。
发布于 2014-10-03 11:12:40
也许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()https://stackoverflow.com/questions/26172682
复制相似问题