簡體   English   中英

使用時間格式化xaxis值並僅在Python中使用matplotlib在散點圖值下顯示它們

[英]format xaxis values with time and show them only under the scatter plot value using matplotlib in Python

我正在繪制散點圖,需要格式化xaxis值的幫助。 下面是我的代碼。

import matplotlib.pyplot as plt
import matplotlib
import numpy as np 
import time
d ={'5000cca234c1c445': {382877: 7, 382919: 3},
'5000cca234c94a2e': {382873: 1, 382886: 1},
'5000cca234c89421': {383173: 1, 383183: 2, 382917: 1, 382911: 1},
'5000cca234c5d43a': {382889: 1, 382915: 1, 382917: 8},
'5000cca234c56488': {382909: 2, 382911: 5}}

colors = list("rgbcmyk")

for data_dict in d.values():
    x = data_dict.keys()
    y = data_dict.values()
    plt.scatter(x,y,color=colors.pop(),s = 60)
    plt.ylabel("Errors" , fontsize=18, color="Green")
    plt.xlabel("Occured at",fontsize=18, color="Green")
    plt.title("DDN44a" , fontsize=25, color="Blue")
    plt.gca().get_xaxis().get_major_formatter().set_useOffset(False)
    plt.xticks(rotation='vertical') 
#plt.ylim(min(y),max(y))
plt.grid()

plt.legend(d.keys())
plt.show()

x軸值(382873,382866,382873 .......)使用“ mktime”功能通過以下代碼行轉換日期。

bin = int(mktime(dt)/ 3600)

(我試圖查看錯誤在一小時內發生了多少次)在圖表上,x軸值顯示為382873,382866,382873..etc。 我希望他們將它們轉換回代表的日期(使用MM / DD / YY MM:HH:SS FORMAT)。 我也希望日期顯示在散點圖(點)的正下方,並且顏色與點相同。

任何幫助將不勝感激。

您應該將日期轉換為datetime.datetime對象,並將其用於xaxis,而不是用於時間的數字。 使用DateFormatter獲取所需的格式。

這使您在2012年4月3日17:30 15秒使用以下格式:

import datetime
d = datetime.datetime(2012, 4, 3, 17, 30, 15)
print(d.strftime('%m/%d/%y %M:%H:%S'))

04/03/12 30:17:15

DateFormatter采用相同的格式字符串。

查看將日期放在圓點下方的注釋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM