![](/img/trans.png)
[英]format x-axis values and show them only under the scatter plot value - matplotlib in Python
[英]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.