我想制作一个图表来显示数据库中的日常数据。我以前在这里为此特定的一天制作了这个图表。我对这里的一些细节并不满意,我不知道我应该寻找哪些关键词。pyplot坐标轴与坐标图之间的距离
什么我是
但我想图表看起来像(忽略颜色和等):
在我的形象,在X轴上时间从创建第一个时间戳的时候开始(在图像显示的早上8点,但每天从不同的时间开始),但我想要的时间总是从7:00:00开始。这是TimeStamp创建的最早时间。
其次,我想在剧情的边缘与第一个/最后一个酒吧之间留出一些空间。我不想让酒吧触及剧情的边缘。
我的代码就在这里。
import MySQLdb
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import pandas as pd
# connect to MySQL database
conn = MySQLdb.connect(host="localhost", user="r1", passwd="!r1db!",
db="r1array")
# prepare a cursor
cur = conn.cursor()
# this is the query we'll be making
query = """SELECT TimeStamp,Pac FROM SolarData WHERE DATE(`TimeStamp`) = CURDATE()-6 GROUP BY HOUR(TimeStamp);"""
# execute the query
cur.execute(query)
# retrieve the whole result set
data = cur.fetchall()
# close cursor and connection
cur.close()
conn.close()
# unpack data in TimeStamp (x axis) and Pac (y axis)
TimeStamp, Pac = zip(*data)
# graph code
fig = plt.figure()
ax = fig.add_subplot()
plt.bar(TimeStamp, Pac, align='center', width=0.015)
# set title, X/Y labels
plt.title("PVIC R1 panel ")
plt.xlabel("Hour")
plt.ylabel("Pac")
fig = plt.gcf()
fig.set_size_inches(20.5,10.5)
plt.grid(True)
plt.draw()
fig.savefig('test.png', dpi=100)
您的图片没有来过(你没有足够的代表张贴他们你的自我,把他们某处公共和高代表用户可以为你编辑它们)。还请包括您用于生成图形的代码。 – tacaswell
我们正在接近一个很好的问题。如果可以,请删除SQL语句并发布带有示例数据的_minimal_工作示例。这样我们可以重现有问题的图片。 – Hooked
如果你想避免在事件的边缘发生事情,还可以看看'ax.margins'(或者等价的,'plt.margins')。在你的具体情况下,如果你不想让剧情总是在特定的时间开始,并且只希望自动缩放在边缘留出一些空间,那么'ax.margins(0.05,0)'会添加5%的填充沿着x方向和沿着y方向的零填充。 –