我想在matplotlib中创建一个散点图来测量算法的性能。
我的数据示例如下:
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3] # corresponding to x = 1
y2 = [4, 5, 6] # corresponding to x = 2
y3 = [7, 8, 9] # corresponding to x = 3
y4 = [10, 11, 12] # corresponding to x = 4
y5 = [13, 14, 15] # corresponding to x = 5
哪种数据类型最适合用一个x值表示多个y值?
在我的例子中,关系是指数的。有没有办法在matplotlib中绘制指数回归线?
答案 0 :(得分:1)
我认为这与数据分析有关。如果我理解正确,我认为您希望与每个测试的时间效率进行比较,但在每次测试运行时,它们应该处于相同的测试环境(如同一台机器,相同的输入数据等)。 )因此,只需提出建议,您可以使用每个测试的平均运行时间作为标准值来显示您的测试结果。这是您可以使用的一些代码。
import numpy as np
import matplotlib.pyplot as plt
data_dim = 4 # number of test
data_points = 100 # number of each test_data_points
data_set = np.random.rand(data_dim,data_points)
time = [ list(range(len(i))) for i in data_set]
norm = np.full((data_dim,data_points),1)
aver = [] # get each test's average value
ndx = 0
for i in norm:
aver.append(i* sum(data_set[0]) / data_points)
fig = plt.figure(figsize=(10,10))
ndx = 1
for i in range(0,2):
for j in range(0,2):
ax = fig.add_subplot(2,2,ndx)
ax.plot(time[ndx-1],data_set[ndx-1],'ko')
ax.plot(time[ndx-1],aver[ndx-1],'r')
ax.set_ylim(-1,2)
ndx += 1
plt.show()