2017-03-24 6 views
1

つまり、plotコマンドを使用すると、データは実際の倍精度数値として認識されますが、何らかの理由で棒グラフを求めると、本当です。ここに私の簡単なコードはあります:Python PlotはRealsを見ていますが、Barは文字列を見ます

上記のプログラムを実行すると、上のプログラムがうまく動作し、目的のラインプロットがうまくいきます。 "plt.plot(xdata、ydata、 'または')をコメントアウトしてplt.barとwidthの行をコメント解除すると、以下のエラーが表示されます。

コマンドラインでは、以下のとおりです。ここでは

python Histogram_Evolution.py 
    Traceback (most recent call last): 
    File "Histogram_Evolution.py", line 13, in <module> 
     plt.bar(xdata,ydata,width,color="blue") 
    File "/N/soft/rhel6/python/2.7.3/lib/python2.7/site-packages/matplotlib-     1.3.1-py2.7-linux-x86_64.egg/matplotlib/pyplot.py", line 2515, in bar 
    ret = ax.bar(left, height, width=width, bottom=bottom, **kwargs) 
    File "/N/soft/rhel6/python/2.7.3/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg/matplotlib/axes.py", line 5053, in bar 
    self.add_patch(r) 
    File "/N/soft/rhel6/python/2.7.3/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg/matplotlib/axes.py", line 1562, in add_patch 
    self._update_patch_limits(p) 
    File "/N/soft/rhel6/python/2.7.3/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg/matplotlib/axes.py", line 1580, in _update_patch_limits 
    xys = patch.get_patch_transform().transform(vertices) 
    File "/N/soft/rhel6/python/2.7.3/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg/matplotlib/patches.py", line 576, in get_patch_transform 
    self._update_patch_transform() 
    File "/N/soft/rhel6/python/2.7.3/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg/matplotlib/patches.py", line 569, in _update_patch_transform 
    bbox = transforms.Bbox.from_bounds(x, y, width, height) 
    File "/N/soft/rhel6/python/2.7.3/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg/matplotlib/transforms.py", line 821, in from_bounds 
    return Bbox.from_extents(x0, y0, x0 + width, y0 + height) 
TypeError: cannot concatenate 'str' and 'float' objects 

が読み込まれydataのファイルの例に続いて読み込まれるXDATAファイルの例です。

0.3454E-03 
0.3801E-03 
0.4095E-03 
0.4245E-03 
0.4456E-03 
0.4661E-03 
0.4861E-03 
0.5049E-03 
0.5292E-03 
0.5435E-03 
0.5588E-03 
0.5732E-03 
0.5840E-03 
0.5925E-03 
0.6037E-03 
0.6158E-03 
0.6852E-03 
0.9102E-03 
0.1083E-02 
0.1197E-02 
0.1306E-02 
0.1477E-02 
0.1986E-02 
0.2352E-02 
0.2577E-02 
0.2810E-02 
0.3253E-02 
0.4226E-02 
0.5017E-02 
0.5535E-02 
0.6018E-02 
0.6973E-02 
0.9046E-02 
0.1079E-01 
0.1192E-01 
0.1294E-01 
0.1502E-01 
0.1948E-01 
0.2325E-01 
0.2568E-01 
0.2789E-01 
0.3235E-01 
0.4198E-01 
0.5012E-01 
0.5532E-01 
0.6012E-01 

0.781791E-01 
0.782330E-01 
0.105108E-02 
0.108144E-02 
0.180879E-04 
0.544883E-03 
0.545426E-03 
0.544242E-04 
0.298458E-06 
0.287814E-06 
0.329474E-06 
0.473319E-07 
0.829702E-07 
0.123443E-08 
0.411156E-07 
0.421080E-07 
0.218848E+00 
0.279559E+00 
0.234184E+00 
0.291552E+00 
0.240008E+00 
0.449513E+00 
0.485745E+00 
0.434142E+00 
0.473585E+00 
0.457689E+00 
0.576471E+00 
0.551371E+00 
0.493782E+00 
0.456229E+00 
0.409499E+00 
0.497298E+00 
0.529838E+00 
0.529549E+00 
0.533233E+00 
0.531061E+00 
0.635727E+00 
0.654071E+00 
0.653801E+00 
0.655098E+00 
0.653899E+00 
0.712113E+00 
0.721604E+00 
0.721187E+00 
0.721345E+00 
0.726954E+00 
0.793069E+00 
0.806902E+00 
0.805833E+00 

答えて

0

matplotlibののplotは便利な機能が自動的に変換することを統合しました文字列を数値に変換します。 barにはこの機能がありません。したがって、棒グラフをプロットするには、数値データを使用する必要があります。データの読み込み時に

これはちょうどDTYPEとしてstrを指定していない、問題になることはありません

np.loadtxt(temp,delimiter=" ")