我试图在python中绘制一组数据。我使用matplotlib.pyplot库来做到这一点。
我把一切都搞定了,但是我遇到了这个问题,传奇中的最后一个键出现的格式比其他键要奇怪。我尝试做不同的设置来解决这个问题到目前为止没有运气...有人可以帮我修复CH4(A)以与其他键相同的格式显示吗?
格式中的格式看起来很像(我不能发布图片,直到我获得10个声誉
CH1(A)
CH2(A)
CH3(A)
CH4
(A
)
以下是我设置图例的代码。
legends = data[16]
legends = legends.split(",")
if numChannels == 1:
plt.plot(raw[:,0],raw[:,1], label=legends[1] + " (" + units[1] + ")")
elif numChannels == 2:
plt.plot(raw[:,0],raw[:,1], label=legends[1] + " (" + units[1] + ")")
plt.plot(raw[:,0],raw[:,2], label=legends[2] + " (" + units[2] + ")")
elif numChannels == 3:
plt.plot(raw[:,0],raw[:,1], label=legends[1] + " (" + units[1] + ")")
plt.plot(raw[:,0],raw[:,2], label=legends[2] + " (" + units[2] + ")")
plt.plot(raw[:,0],raw[:,3], label=legends[3] + " (" + units[3] + ")")
elif numChannels == 4:
plt.plot(raw[:,0],raw[:,1], label=legends[1] + " (" + units[1] + ")")
plt.plot(raw[:,0],raw[:,2], label=legends[2] + " (" + units[2] + ")")
plt.plot(raw[:,0],raw[:,3], label=legends[3] + " (" + units[3] + ")")
plt.plot(raw[:,0],raw[:,4], label=legends[4] + " (" + units[4] + ")")
plt.legend(loc=0)
plt.xlabel(legends[0])
plt.ylabel("Data")
plt.title(filestr)
plt.show()
图例是我从.csv文件中读取的数据。我不确定为什么会这样。这只发生在最后一个传奇。例如。如果我有4个数据集和第3个图,它们会很好,但是如果我绘制所有4个或只有1个数据集和图,则键的格式不同,如上所示。
答案 0 :(得分:0)
我认为您units[4]
数据可能包含一些新行字符(\n
),这些字符会导致奇怪的图例格式。如果手动设置图例和单位字符串,则会得到正确格式化的内容,
import numpy as np
import matplotlib.pyplot as plt
raw = np.random.random((20,5))
legends = [" ", "CH1 ","CH2 ","CH3 ","CH4 "]
units = [" ", "A","A","A","A"]
numChannels = 4
if numChannels == 1:
plt.plot(raw[:,0],raw[:,1], label=legends[1] + " (" + units[1] + ")")
elif numChannels == 2:
plt.plot(raw[:,0],raw[:,1], label=legends[1] + " (" + units[1] + ")")
plt.plot(raw[:,0],raw[:,2], label=legends[2] + " (" + units[2] + ")")
elif numChannels == 3:
plt.plot(raw[:,0],raw[:,1], label=legends[1] + " (" + units[1] + ")")
plt.plot(raw[:,0],raw[:,2], label=legends[2] + " (" + units[2] + ")")
plt.plot(raw[:,0],raw[:,3], label=legends[3] + " (" + units[3] + ")")
elif numChannels == 4:
plt.plot(raw[:,0],raw[:,1], label=legends[1] + " (" + units[1] + ")")
plt.plot(raw[:,0],raw[:,2], label=legends[2] + " (" + units[2] + ")")
plt.plot(raw[:,0],raw[:,3], label=legends[3] + " (" + units[3] + ")")
plt.plot(raw[:,0],raw[:,4], label=legends[4] + " (" + units[4] + ")")
plt.legend(loc=0)
plt.xlabel(legends[0])
plt.ylabel("Data")
plt.show()
给出,