我已經用python包裝了一個C庫,並使用ctypes並調用了這些DLL。然後我創建了一個可打印出我所有數據的for循環。這裏是我包裝的代碼的一小部分。使用for-loop值創建基本圖
import ctypes
from ctypes import *
import matplotlib.pyplot as plt
class ParmData(Union):
_fields_ = [
('c', ctypes.POINTER(ctypes.c_ubyte)),
('f', ctypes.POINTER(ctypes.c_float))]
class SParm(Structure):
pass
SParm._fields_ = [
('data', ctypes.POINTER(ParmData)),
('time', ctypes.POINTER(ctypes.c_float))]
dll.readSParm.argtypes = (POINTER(SFile), c_char_p, c_double, c_double, c_double, POINTER(TTag), c_ushort,)
dll.readSParm.restype = POINTER(SParm)
g = dll.readSParm(SF, ParmName, startTime, stopTime, Null, None, convertType)
dll.freeSParm(g)
我想創建一個簡單的圖形,其中包含從for循環打印出來的數據點。這是我到目前爲止有:
for i in range(0, 1032):
x = (g[0].time[i])
y = (g[0].data[0].f[i])
print(i, x, y)
這for循環完美的作品,並打印出所有的數據到一個整潔的名單,但我需要一個列表被繪製成一個簡單的圖表。 for循環的迴歸看起來是這樣的:
1028 -1.2241029739379883 1.7323481895261962e+19
1029 -0.22411400079727173 2.635080461412465e+23
1030 0.7759910225868225 1.7829588197038883e+19
1031 1.7759920358657837 1.8027558490491145e+28
當第二列對應的時間價值,第三列是當時的數據值。
我設置x和y等於指向包含所有數據的對象的指針。 我很難將這些數據轉化爲圖表。 idk我做錯了什麼,因爲在大多數matplotlib示例中,他們只是創建隨機數據並繪製它。我需要一種方法將數據導入圖表。 這不起作用:
plt.plot(x, y)
plt.show()
它建立一個圖表,但它並不在數據填充到圖形。這是我的圖表看起來不太好的。
我的問題是這樣的:
我怎樣才能從值對打印清單我的數據爲基本圖形?
您是否嘗試給線條添加顏色? plt.plot(x,y,' - r') –
您的x和y會在for循環中重新初始化,我想您可能想要構建一個列表。 –
我想用'plot(g [0] .time,g [0] .data [0] .f)'應該有效嗎? – Bart