python 封闭图形面积,是否可以使用matplotlib生成封闭图形中显示的绘图?

我想用matplotlib在子块网格上绘制一系列线图。但是,网格的右上部分是左下角的重复,所以我想省略右上角。我附上了我正在寻找的png图像。可以用matplotlib画这样的东西吗?

0ngqH.png

对于感兴趣的人来说,这是一系列四变量化学反应体系的相图。我把每个变量都标在另一个上面。注意,主对角线表示与自身相对绘制的变量,这也可能被忽略。

我目前使用的代码可能不太有用,但这是我用来做一个完整的4乘4网格,我想做一个4乘4与右上方块左。注意,如果我不绘制一些网格单元,我仍然会显示轴,也许我可以为这些子块旋转轴的绘制?

plt.subplots(4,4,figsize=(9,6))

slist = ['S1', 'S2', 'S3', 'S4']

count = 1

for i in range (4):

for j in range (4):

r.reset()

m = r.simulate (0, 80, 2000, [slist[i], slist[j]])

plt.subplot (4,4,count)

plt.plot (m[:,0], m[:,1])

count += count

plt.show()

以下行调用一个模拟器,该模拟器返回当前选定变量的两列。它没有效率,因为我真的应该调用它一次所有的变量,然后挑选出我想要的每个图。但这只是一个试验绘图的原型。优化可以稍后进行。变量r是对simulstor的引用。

m = r.simulate (0, 80, 2000, [slist[i], slist[j]])

我刚刚发现:

ax = plt.subplot (4,4,count)

plt.plot (m[:,0], m[:,1])

if count in [2,3,4,7,8,12]:

ax.set_visible(False)

这很简单,但需要推广。

最终的代码工作良好,并基于Kota Mori的答案,其中还包括轴标记:

slist = ['S1', 'S2', 'S3', 'S4']

m = r.simulate (0, 80, 2000, slist)

fig = plt.figure(figsize=(9,6))

fig.tight_layout()

count = 0

for i in range(4):

for j in range(4):

count += 1

if i >= j:

ax = fig.add_subplot(4, 4, count)

ax.set_xlabel (slist[i])

ax.set_ylabel (slist[j])

ax.plot (m[:,i], m[:,j])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值