python - 正确描绘 matplotlib python 中的趋势,如电子表格图表
问题描述
我有一个包含日期和汽油价格的非常简单的数据集。
就像 WPS 电子表格中的下图一样
但是相同的数据集在 matplotlib python 中绘制如下
我正在绘制的数据框是
日期价格 0 2018-05-12 75.09 1 2018-05-13 75.09 2 2018-05-14 75.28 3 2018-05-15 75.42 4 2018-05-16 75.57 5 2018-05-17 75.78 6 2018-05-18 76.06 7 2018-05-19 76.34 8 2018-05-20 76.66 9 2018-05-21 76.98 10 2018-05-22 77.27 11 2018-05-23 77.55 12 2018-05-24 77.84 13 2018-05-25 78.19 14 2018-05-26 78.32 15 2018-05-27 78.46 16 2018-05-28 78.61 17 2018-05-29 78.76 18 2018-05-30 78.19 19 2018-05-31 78.68 20 2018-06-01 78.60 21 2018-06-02 78.51 22 2018-06-03 78.43 23 2018-06-04 78.43 24 2018-06-05 78.16 25 2018-06-06 78.05 26 2018-06-07 77.97 27 2018-06-08 77.77 28 2018-06-09 77.38 29 2018-06-10 77.15 30 2018-06-11 76.96 31 2018-06-12 76.82 32 2018-06-13 76.82
这是我用来绘制 import matplotlib.pyplot as plt import Datasets as DS 的代码
df = DS.getDataSet_petrol("13-06-2018")
plt.plot(df['date'],df['price'])
plt.show()
显然,查看电子表格图表显示非线性趋势,而 matplotlib 显示线性趋势。
这让我对使用线性或多项式回归的正确回归模型感到困惑。
所以我的主要问题是:我怎样才能让 python 图看起来像电子表格?
解决方案
似乎问题是由于您的df["price"]
.
这可以通过在绘制之前将其转换为浮点数来解决。
plt.plot(df['date'],df['price'].astype('float'))
甚至在对数据做任何事情之前:
df['price'] = df['price'].astype('float')
推荐阅读
- ios - 有什么方法可以让我们使用 AVCaptureSession 在 1 秒内捕获固定数量的帧?
- javascript - 保持 onchange 事件的旧值
- jpa - 如何使用 JPA 读取集合属性?
- c# - 使用 RSA 解密 AES 密钥时出现无效的密文异常
- unity3d - Unity:昂贵的方法调用和空值比较昂贵 - 解决方案(RIDER IDE)?
- c# - 如何从另一个脚本变量赋值?
- jersey - 泽西 WAS9 无法储存
- javascript - 在 href 中搜索包含特定 keyord 的元素并隐藏其他元素(在 JavaScript 中)
- flutter - flutter 无法生成 x86、x86_64 apk 文件
- ruby-on-rails - Paperclip 不显示图像,而是在 rails 中显示带有 amazon s3 的标题?