鱼C论坛

 找回密码
 立即注册
查看: 1314|回复: 2

python有关绘制平滑曲线问题

[复制链接]
发表于 2020-7-24 22:09:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from scipy import interpolate
import matplotlib.pyplot as plt 
import numpy as np

x = np.array(['2020-07-15','2020-07-16','2020-07-17','2020-07-20','2020-07-21','2020-07-22','2020-07-23'])
y = np.array([17.58,20.05,18.17,18.66,18.81,20.44,20.24])
plt.xlabel("Date");
plt.ylabel("values")
plt.xticks(rotation=45)
plt.plot(x,y)

结果:
感觉很丑,现在想要绘制平滑曲线
from scipy import interpolate
import matplotlib.pyplot as plt 
import numpy as np

x = np.array(['2020-07-15','2020-07-16','2020-07-17','2020-07-20','2020-07-21','2020-07-22','2020-07-23'])
y = np.array([17.58,20.05,18.17,18.66,18.81,20.44,20.24])
xnew =np.arange(0,10,0.1)
func = interpolate.interp1d(x,y)
ynew = func(xnew)
plt.plot(xnew,ynew)

结果提示:
TypeError: Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'


请问 有办法解决吗,或者有别的方法去绘制平滑曲线,网上查了好久都是x轴和y轴都为数字
QQ截图20200724220124.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-24 22:10:30 | 显示全部楼层
图片是一开始绘制的一个最简单的图形
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-24 23:10:28 | 显示全部楼层
https://docs.scipy.org/doc/scipy ... nterpolate.interp1d

interp1d 的参数 kind
str or int, optional
Specifies the kind of interpolation as a string (‘linear’, ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’, ‘next’, where ‘zero’, ‘slinear’, ‘quadratic’ and ‘cubic’ refer to a spline interpolation of zeroth, first, second or third order; ‘previous’ and ‘next’ simply return the previous or next value of the point) or as an integer specifying the order of the spline interpolator to use. Default is ‘linear’.

要曲线,至少三次差值(理论上,最多与已知点数量相同)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 20:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表