這可能是因爲你沒有定義一個數字來包含它。
這裏是你的代碼的修改:
from matplotlib.pyplot import figure, plot, show, xlabel, ylabel
spike_id = [i[0] for i in v]
spike_time = [i[1] for i in v]
fig = figure(figsize=[16,9])
# Plot number 1:
fig.add_subplot(211)
plot(spike_time, spike_id, ".")
xlabel("Time(ms)")
ylabel("NeuronID")
# plot number 2:
fig.add_subplot(212)
plot(time,volts , "-")
xlabel("Time (ms)")
ylabel("Volts (mv)")
show()
你還問,如果向量事項的大小。
不可以。如果可以用Python進行計算,它可以在MatPlotLib中顯示(主要用C實現)。如果有幾百萬個進程可能需要一些時間。另外,考慮計算您的spike_id
和spike_time
作爲生成器或NumPy數組,以避免不必要的迭代。這裏是如何:
發電機:
spike_id = (i[0] for i in v)
spike_time = (i[1] for i in v)
NumPy的:
使用與NumPy的允許矢量化,這將大大優化您的程序,並使其相當快;尤其是在處理大量數據的情況下。
這聽起來像是你正在處理一些信號數據(可能是EEG或EMG?)。無論如何,NumPy將爲您提供各種非常有用的工具來處理和分析這些數據。
from numpy import array
v_array = array(v)
spike_id = v_array[:, 0]
spike_time = v_array[:, 1]
如果您使用的IPython/Jupyter筆記本,您可以嵌入您的筆記本電腦裏面的人物,像這樣:
from matplotlib.pyplot import figure, plot, xlabel, ylabel
%matplotlib inline
,從而可以跳過show()
因爲這將不再是必要的。
希望這會有所幫助。
你在使用什麼環境? Windows,Linux,OS X?從IDE?命令行? IPython/Jupyter筆記本?有沒有錯誤?你的'rcParams'或'matplotlibrc'爲你的安裝設置正確嗎?你以前能夠繪製事情嗎?請[編輯]你的問題並儘可能多地添加相關細節。 – MattDMo