【问题标题】:Matplotlib: plotting sorted dates from stringsMatplotlib:从字符串中绘制排序日期
【发布时间】:2017-04-24 21:04:28
【问题描述】:

我必须绘制一个具有 x= date.append (c[1]) 和 y=umidita.append (c[2]) 的图形。我收到此错误,我该怎么办?还有如何按时间顺序排列日期? 例如:
我有 date.append:28-10-2016 和 6-12-2016。在 umidita.append:86 和 78,9。 centralina_min_distanza=罗马

dati = [("Rome", "6-12-2016", 78.9),
        ("Rome", "28-10-2016", 86),
        ("Milan", "6-12-2016", 155)] 

centralina_min_distanza= "Rome"
date=[]
umidita=[]
for c in dati:
    if c[0]==centralina_min_distanza:
        date.append(c[1]) #aggiungo dati e umidita alle liste
        umidita.append(c[2])


import numpy as np
import pylab
pylab.figure(1)
x=np.array([float(n) for n in c[1].split()])
y=np.array([float(n) for n in c[2].split()])
pylab.plot(x,y)
pylab.show()

【问题讨论】:

  • 由于我们无权访问您的数据,尤其是dati,因此很难发现您的问题。请提供minimal reproducible example。为此,您可以获取dati 的前几个值并将它们放入硬编码列表中。另外,为centralina_min_distanza 赋值。
  • 哦不!你把事情搞砸了,minimal reproducible example 中的哪些词你听不懂?
  • 我编辑了这个问题,最终生成了一个minimal reproducible example。请验证这是否确实是您所拥有的。
  • 我投票决定将此问题作为题外话结束,因为在对问题进行了大量修改后,确切的范围仍不清楚,而且问题完全针对提问者的需求。由于提问者不再关注 SO,因此保持这个问题存在没有任何好处。

标签: python date csv matplotlib


【解决方案1】:

表示c[1].split()c[2].split()产生两个不同长度的列表,你需要确保len(c[1].split())len(c[2].split())一样

【讨论】:

  • 确保c[1].split()c[2].split() 产生相同长度的列表可以消除ValueError,但很可能不会产生所需的结果。我认为应该等待一个最小的例子来看看需要什么。
  • 这就是我认为的全部内容(从标题中),所以如果这解决了标题中提到的问题,那么如果出现任何问题,可能会问另一个问题!
  • 用户显然想要湿度与日期的关系图,但在生成它时遇到了问题。如果这个问题是关于得到一个 ValueError 的(我不相信),那么它应该被标记为重复而不是被回答。
猜你喜欢
  • 2015-06-03
  • 2020-12-14
  • 2019-11-07
  • 1970-01-01
  • 2011-01-30
  • 2012-11-09
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多