我有以下简单的脚本绘制图表:
import matplotlib.pyplot as plt
import numpy as np
T = np.array([6, 7, 8, 9, 10, 11, 12])
power = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00])
plt.plot(T,power)
plt.show()
Run Code Online (Sandbox Code Playgroud)
就像现在一样,这条直线从一点到另一点直线看起来不错,但在我看来可能更好.我想要的是平滑点之间的界限.在Gnuplot,我会用smooth cplines.
在PyPlot中有一种简单的方法吗?我找到了一些教程,但它们看起来都相当复杂.
我正在编写一个脚本,用x轴绘制一些日期数据(在matplotlib中).我需要创建一个numpy.linspace超出这些日期,以便之后创建样条曲线.有可能吗?
我尝试过的:
import datetime
import numpy as np
dates = [
datetime.datetime(2015, 7, 2, 0, 31, 41),
datetime.datetime(2015, 7, 2, 1, 35),
datetime.datetime(2015, 7, 2, 2, 37, 9),
datetime.datetime(2015, 7, 2, 3, 59, 16),
datetime.datetime(2015, 7, 2, 5, 2, 23)]
x = np.linspace(min(dates), max(dates), 500)
Run Code Online (Sandbox Code Playgroud)
它抛出此错误:
TypeError: unsupported operand type(s) for *: 'datetime.datetime' and 'float'
Run Code Online (Sandbox Code Playgroud)
我也尝试转换datetime到np.datetime64,但是,这并不工作,以及:
dates = [ np.datetime64(i) for i in dates ]
x = np.linspace(min(dates), max(dates), 500)
Run Code Online (Sandbox Code Playgroud)
错误:
TypeError: ufunc multiply …Run Code Online (Sandbox Code Playgroud)