我想製作一個圖表來顯示數據庫中的日常數據。我以前在這裏爲此特定的一天製作了這個圖表。我對這裏的一些細節並不滿意,我不知道我應該尋找哪些關鍵詞。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方向的零填充。 –