使用pyplot绘制曲线

时间:2018-01-24 12:57:54

标签: python matplotlib

我有2条曲线,有5个数据点:

a = np.array([['16x28', 0.023392, 0.006976],
              ['64x36', 0.029888, 0.039104],
              ['512x288', 0.033328, 2.198592],
              ['1024x576', 0.065632, 5.864992],
              ['3840x2160', 0.801120, 76.550461]])

当我绘制它时,我希望有2条曲线,但却得到直线:

plt.xticks([0,1,2,3, 4],a[:,0])
plt.plot(a[:,1])
plt.plot(a[:,2])

plot curves

如何制作像它应该的pyplot情节曲线?

更新:我使用的是Python 3.5.2和matplotlib 2.1.1

1 个答案:

答案 0 :(得分:3)

Matplotlib< 2.1不允许直接绘制字符串,但是matplotlib 2.1可以。如果您检查数据,您将看到它们是字符串:

print (a[1,1], type(a[1,1]))
# 0.029888 <class 'numpy.str_'>

因此,您需要将数据转换为浮点数。您可以使用numpy.ndarray.astype

执行此操作
import matplotlib.pyplot as plt
import numpy as np

a = np.array([['16x28', 0.023392, 0.006976],
              ['64x36', 0.029888, 0.039104],
              ['512x288', 0.033328, 2.198592],
              ['1024x576', 0.065632, 5.864992],
              ['3840x2160', 0.801120, 76.550461]])


plt.xticks([0,1,2,3,4], a[:,0])
plt.plot(a[:,1].astype(float))
plt.plot(a[:,2].astype(float))
plt.show()

,并提供:

enter image description here