所以我刚刚安装了 Python3.3、Numpy、MySQL Connector 和 Matplotlib。我有一个包含大量数据的表,我在其中编写了一个查询,将其输出为类似于以下内容:
Timestamp(unix) Data(float)
1353000347 90.7000
1353007787 90.7000
1353015227 90.7000
1353000347 89.6899
1353007787 90.7000
1353015227 90.7000
因此,通过大量的试验和错误并将教程和其他问题拼凑在一起,我最终得到了这个 python 脚本:
import matplotlib.pyplot as plt
import numpy as np
import mysql.connector
#Open DB Connection
cnx = mysql.connector.connect(host='localhost',database='db',
user='user',password='')
#Get Buffered Cursor
curA = cnx.cursor(buffered=True)
curA.execute(
"""
SELECT UNIX_TIMESTAMP(`timestamp`),`data1`
FROM `data`
"""
)
rows = np.array(curA.fetchall())
cnx.close()
x = rows[:,0]
y = rows[:,1]
plt.scatter(x,y,20,'r','o',None,None,None,None,0.05,0)
plt.show()
我有很多数据点会重叠(相同的坐标),所以我希望 alpha 真的很低。我在这里得到了我想要的:
无论如何,我想要的是简单地将刻度标记格式化为日期(例如月、年)。我在这个问题上进行了很多搜索,并在这里找到了一个类似的问题,但是我无法对其进行调整或理解如何将其应用于我的脚本。这么简单的事情似乎过于复杂?