Pythonとmatplotlibを使用してベクトルをプロットしようとしています。
私の問題は、matplotlib.pyplotで、データのx軸が0で始まり、23で終わることです。グラフでは同じことが考慮されています。
私が欲しいのは、この軸がラベル1(最初のy値、または自然なPythonインデックスの値#0に関連する)で始まり、24(最後のy値、または自然なPythonインデックスの値#23に関連する)で終わることです。 )。
pp.xlim(xmin = 1)を試しましたが、問題は、このようにすると、グラフの最初の次元(0)が消え、上限が23のままになることです。24にし、最初のyにします。 x値が1(0ではない)とラベル付けされている値。
この解決策は私にはうまくいきません。グラフのx軸に[0,23]ではなく[1,24]のラベルを付けようとしています。私が書いたように、xlim = 1またはset_xlim = 1を使用してx軸の1から開始すると、最初のy値(ベクトルの次元0)はグラフに表示されません。2番目のy値(ベクトルの次元1)で始まり、最後の値で終わります。欲しくない。これが私が使っているソースコードです。
import matplotlib.pyplot as pp
import numpy as np
a=np.array( [0.10478151, 0.09909564, 0.01319826, 0.00743225, 0.00483721, 0.18202419, 0.01732046, 0.04153536, 0.03317991, 0.0536289, 0.00585423, 0.00929871, 0.00629363, 0.12180654, 0.00607781, 0.03752038, 0.05547452, 0.01459015, 0.00604909, 0.01132442, 0.00710363, 0.11159429, 0.0079922, 0.04198672])
pp.xlabel('Dimension')
pp.ylabel('Importance')
ax=pp.subplot(111)
ax.set_xlim(1, 24)
dim=np.arange(1,24,1);
ax.plot(a, 'ro', color='r',linewidth=1.0, label="Graph2")
pp.xticks(dim)
pp.grid()
pp.show()
pp.close()
コードを実行すると、結果の画像は次の画像になります。
最初のy値はx = 1で表示され、最後のy値はx = 24で表示されると予想されます。ただし、Pythonのインデックス作成は0から始まるため、コードはx = 2(またはPythonの自然なインデックス作成ではx = 1)から値を「シフト」しているように見えます。
ここで提案された解決策は、それが第1の値(0)に表示されませんので、私を助けていません。すべての値を表示したいのですが、ラベルは1で始まり、24で終わる必要があります。問題は、Pythonのインデックス作成が0で始まり、23で終わることです。
Pythonでこの問題に対処する方法は?
numpy.rollを使用して、必要な値を元の配列からインデックス1から23にシフトし、元の配列の最後の要素をインデックス24になるように追加することで、必要な結果を得ることができます。
コードは次のようになります。
import matplotlib.pyplot as pp
import numpy as np
a=np.array( [0.10478151, 0.09909564, 0.01319826, 0.00743225, 0.00483721, 0.18202419, 0.01732046, 0.04153536, 0.03317991, 0.0536289, 0.00585423, 0.00929871, 0.00629363, 0.12180654, 0.00607781, 0.03752038, 0.05547452, 0.01459015, 0.00604909, 0.01132442, 0.00710363, 0.11159429, 0.0079922, 0.04198672])
pp.xlabel('Dimension')
pp.ylabel('Importance')
ax=pp.subplot(111)
ax.set_xlim(1, 24)
dim=np.arange(1,25,1)
ax.plot(np.append(np.roll(a,1),a[23]), 'ro', color='r',linewidth=1.0, label="Graph2")
pp.xticks(dim)
pp.grid()
pp.show()
pp.close()
結果のプロットは次のようになります。
行の変更に注意してください
dim = np.arange(1,25,1)
x軸の目盛りを1から24までプロットするために必要です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加