2
我想繪製一個或多個信號轉換成一個陰謀。大多數Python的方式來繪製多個信號
對於每個信號,各個顏色,線寬和線型可以被指定。 如果多個信號必須被繪製,圖例也應該被提供。
到目前爲止,我使用下面的代碼,讓我繪製多達三個信號。
import matplotlib
fig = matplotlib.figure.Figure(figsize=(8,6))
subplot = fig.add_axes([0.1, 0.2, 0.8, 0.75])
Signal2, Signal3, legend, t = None, None, None, None
Signal1, = subplot.plot(xDataSignal1, yDataSignal1, color=LineColor[0], linewidth=LineWidth[0],linestyle=LineStyle[0])
if (yDataSignal2 != [] and yDataSignal3 != []):
Signal2, = subplot.plot(xDataSignal2, yDataSignal2, color=LineColor[1], linewidth=LineWidth[1],linestyle=LineStyle[1])
Signal3, = subplot.plot(xDataSignal3, yDataSignal3, color=LineColor[2], linewidth=LineWidth[2],linestyle=LineStyle[2])
legend = subplot.legend([Signal1, Signal2, Signal3], [yLabel[0], yLabel[1], yLabel[2]],LegendPosition,labelspacing=0.1, borderpad=0.1)
legend.get_frame().set_linewidth(0.5)
for t in legend.get_texts():
t.set_fontsize(10)
elif (yDataSignal2 != []):
Signal2, = subplot.plot(xDataSignal2, yDataSignal2, color=LineColor[1], linewidth=LineWidth[1],linestyle=LineStyle[1])
legend = subplot.legend([Signal1, Signal2], [yLabel[0], yLabel[1]], LegendPosition,labelspacing=0.1, borderpad=0.1)
legend.get_frame().set_linewidth(0.5)
for t in legend.get_texts():
t.set_fontsize(10)
是否可以概括的代碼,使得它更Python和還利用matplotlib和插曲的最多n個信號支持?
任何建議,非常感謝。
你如何創建某種類型的字典列表,其中列表中的每個元素都是一個字典,它將包含你的x和y數據,linecolor,linewidth等等。然後你可以創建一個plot,iterate在所述字典列表上,並繪製所有相同的軸? –
好評。我會試試這個。謝謝。 – Rickson