2016-07-26 7 views
0

関数n(n)を指定すると、ルールに従ってnの桁を変更する関数RC(n)を作成しました。関数は次のようになります。Pythonを使用して関数を描くことができません

def cfr(n): 
    return len(str(n))-1 


def n_cfr(k,n): 
    J=str(k) 
    if "." in J: 
     J2=J.replace(".", "") 
     return J2[n-1] 
    else: 
     return J[n] 

def RC(n): 
    if "." not in str(n): 
     return n+1 
    sum=0 
    val=0 
    for a in range(1,cfr(n)+1): 
     O=(int(n_cfr(n,a)))*10**(-a+1) 
     if int(n_cfr(n,a))==9: 
      val=0 
     else: 
      val=O+10**(-a+1) 
     sum=sum+val 
    return sum  

この関数をnの非整数値に対して描画したいと思います。友人は私に、彼が他の機能に使用されるこのコードを与えたが、私のために動作していないよう:

def draw(f,a,b,res): 
import numpy as np 
import matplotlib.pyplot as plt 
    x=[a+(b-a)*i/res for i in range(0,res)] 
    y=[f(elm) for elm in x] 
    plt.plot(np.asarray(x), np.asarray(y)) 
    plt.show() 

私は誰もが私にいくつかの助けを与えることができるので、パイソンを使用して関数をプロットすることに慣れていませんよ?あなたの関数で事前

答えて

1

で おかげラインはrangeの最初の2つの引数がstartstopあるx = list(range(a, b, res))でなければなりません。

def draw(f, a, b, res): 
    import numpy as np 
    import matplotlib.pyplot as plt 
    x = list(range(a, b, res)) 
    plt.plot(x, map(f, x)) 
    plt.show() 
+0

まだ、関数のコード(RCと呼ばれます)を入力してから描画する(RC、1,10,10)場合、描画されるのはすべて白いグラフです(RC、1,100,10)何が起きるかは、正の整数に対してのみ働くような直線です。 – Peterix

+0

解像度が10で1から10にすると何も戻りません'b-a ekipmanager

関連する問題