小编Mar*_*lex的帖子

同一个imshow matplotlib中的两种不同颜色的彩色图

我们假设下面的例子

import matplotlib.pyplot as plt
import numpy as np

v1 = -1 + 2*np.random.rand(50,150)
fig = plt.figure()
ax = fig.add_subplot(111)
p = ax.imshow(v1,interpolation='nearest')
cb = plt.colorbar(p,shrink=0.5)
plt.xlabel('Day')
plt.ylabel('Depth')
cb.set_label('RWU')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我想在不同的色图中显示低于零的值,而不是零以上的值

python matplotlib color-mapping imshow

15
推荐指数
1
解决办法
1万
查看次数

在matplotlib中垂直对齐两个绘图,前提是一个是imshow情节?

我想对齐两个图的x轴,前提是一个imshow图.

我试图使用gridspec如下:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.gridspec as grd

v1 = np.random.rand(50,150)
v2 = np.random.rand(150)

fig = plt.figure()

gs = grd.GridSpec(2,1,height_ratios=[1,10],wspace=0)


ax = plt.subplot(gs[1])
p = ax.imshow(v1,interpolation='nearest')
cb = plt.colorbar(p,shrink=0.5)
plt.xlabel('Day')
plt.ylabel('Depth')
cb.set_label('RWU')
plt.xlim(1,140)

#Plot 2
ax2 = plt.subplot(gs[0])
ax2.spines['right'].set_visible(False)
ax2.spines['top'].set_visible(False)
ax2.xaxis.set_ticks_position('bottom')
ax2.yaxis.set_ticks_position('left')
x=np.arange(1,151,1)
ax2.plot(x,v2,'k',lw=0.5)
plt.xlim(1,140)
plt.ylim(0,1.1)
#
plt.savefig("ex.pdf", bbox_inches='tight') 
Run Code Online (Sandbox Code Playgroud)

我也希望这些地块彼此尽可能接近,另一个地方高度的1/10.如果我把彩条拿出来,它们似乎是对齐的,但我仍然不能把它们放在一起.我也想要颜色条.

python matplotlib alignment

5
推荐指数
1
解决办法
6091
查看次数

gfortran不允许具有不同组件长度的字符数组

请参阅下面的示例

 program test

 character(10),dimension(5):: models = (/"feddes.swp", "jarvis89.swp", "jarvis10.swp" ,   "pem.swp", "van.swp"/)

end
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

数组构造函数中不同的CHARACTER长度(10/12)(1)

ifort编译器没有错误.为什么gfortran会发生这种情况,有没有办法解决这个问题?

fortran gfortran fortran90

5
推荐指数
1
解决办法
3607
查看次数

第一栏中的"d"标签,Fortran 77

我正在修改一个用Fortran 77编写的模型中的代码,但我遇到了一件奇怪的事情.在某些文件中,行的第一列中有一个标签"d",如下例所示:

d     real*8    co2rootfix,co2rootloss,co2shootfix
d     character komma*1

d     open(unit=87,file='crop_CO2.csv',status='unknown')
d     write(87,*) 'date,co2rootfix,co2rootloss,co2shootfix'
d     open(unit=88,file='crop_dm.csv',status='unknown')
d     write(88,*) 'date,wrtpot,wrt,wstpot,wst,rdpot,rd,laipot,lai,
d    &gwrt,gwst,drrt,drlv,drst'
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它是由英特尔的ifort编译器成功编译的.但是,gfortran逻辑上返回以下错误:

错误:语句标签中的非数字字符(1)

我想知道:

  1. 这个标签的含义;
  2. 为什么它只被ifort认可;
  3. 我如何才能与gfortran合作.

fortran gfortran fortran77 intel-fortran

4
推荐指数
1
解决办法
482
查看次数