matplotlib에서 조각 별 함수를 그리려합니다. (아미의 대답 here을 기반으로) 내 필터링 방식은 작동하지 않습니다파이썬에서 조각 별 함수를 그릴 것
ValueError: x and y must have same first dimension
당신이 문제를하시기 바랍니다 고칠 수?
import numpy as np
import matplotlib.pyplot as plt
gK_inf = 7.06
gK_0 = 0.09
tauN = 0.75
gK_inf1 = 0.09
gK_01 = 7.06
tauN1 = 1.1
def graph(formula, formula1, t_range):
t = np.fromiter(t_range, np.float)
gK = formula(t)
gK1 = formula1(t)
plt.plot(t,gK)
plt.plot(t,gK1)
plt.xlabel(r"$t(msec.)$")
plt.ylabel(r"$g_K$")
plt.show()
def my_formula(t):
if np.all(t>0) and np.all(t<5):
return np.power((np.power(gK_inf,0.25))-((np.power(gK_inf,0.25)-np.power(gK_0,0.25))*np.exp(-t/tauN)),4)
else:
return 0
def my_formula1(t):
if np.all(t>5) and np.all(t<10):
return np.power((np.power(gK_inf1,0.25))-((np.power(gK_inf1,0.25)-np.power(gK_01,0.25))*np.exp(-t/tauN1)),4)
else:
return 0
graph(my_formula, my_formula1, np.arange(0,10,0.1))
업데이트 :
는 @Michael 조언에 따르면, 오류가 제거하지만 무엇을해야 결과가되지 않습니다 :
사실, formula
및 formula1
범위 [0,5]
및 [5,10]
에 각각 플롯되어야합니다.
이것은 내가 필요로하는 것입니다 : 당신은 return np.zeros_like(t)
으로 모두 my_formula
에 return 0
및 my_formula1
를 교체해야
업데이트의 플롯이 예상되는 출력입니까? 그렇다면 나는 왜 당신이 파란색 곡선에 대해서'np.all'과'return 0'을 사용하는지 (t> 5에서 0이되지 않음) 얻지 못한다. 오류 메시지 수정 이외에 원하는 것을 자세하게 지정하십시오. – Michael
@ 마이클 : 네가 맞아. 내 코드의 논리는 예상 한 것과 다릅니다. 나는 당신이 친절하게 그것을 확인한다면, 내가 필요한 것을 설명하기 위해 스케치를 추가했다. – Roboticist
좋아, * 원 * 커브를 원해. 나는 지금 그것을 얻는다라고 생각한다. 나는 그것을 시도한 다음 내 대답을 편집 할 것입니다. – Michael