незначительные галочки matplotlib не отображаются с одной крупной галочкой - PullRequest
0 голосов
/ 11 сентября 2018

Я новичок в этом пространстве и некоторое время работаю с matplotlib. Вот моя проблема: как вы можете видеть, когда у меня есть два или более главных тика a1.plot(date2, closep2), тогда не возникает проблем, но с одним крупным тиком a1.plot(date1, closep1) я не получаю незначительного. Может ли кто-нибудь помочь, пожалуйста? я буду благодарен.

import matplotlib.pylab as plt
import matplotlib.dates as mdates
import matplotlib.ticker as mticker
import datetime as dt
from random import randint

fig = plt.figure
a1 = plt.subplot(111)

d= 1536596330   #just an starting time for my sample data
date1= []
date2= []
closep1 = []
closep2 = []

# Not the best way but making some lists to plot :
# Date1 with 48 dates and 30 minutes interval , some random prices
for hh in range (0, 48) :
	dates= dt.datetime.fromtimestamp(int(d+ (hh*1800)))
	date1.append(dates)
	closep1.append(randint(1,9))

# Date2 with 72 dates and 30 minutes interval , some random prices
for hh in range (0, 72) :
	dates= dt.datetime.fromtimestamp(int(d+ (hh*1800)))
	date2.append(dates)
	closep2.append(randint(1,9))

# Here comes trouble :
a1.plot(date1, closep1)

# No problem with this one :
# a1.plot(date2, closep2)

a1.xaxis.set_major_locator(mdates.DayLocator())
a1.xaxis.set_major_formatter(mdates.DateFormatter('%b/%d'))
a1.xaxis.set_minor_locator(mticker.AutoMinorLocator(6))
a1.xaxis.set_minor_formatter(mdates.DateFormatter('%H:%M'))
plt.setp(a1.xaxis.get_majorticklabels(),rotation=45, fontsize=10,color='k')
plt.setp(a1.xaxis.get_minorticklabels(),rotation=45, fontsize=7,color='r')

plt.show()

1 мажорный тик 2 основных тика

1 Ответ

0 голосов
/ 11 сентября 2018

Вот один дешевый хак. Я только показываю измененный код.

for hh in range(0, 58): # Increased the range
    dates= dt.datetime.fromtimestamp(int(d+ (hh*1800)))
    date1.append(dates)
    closep1.append(randint(1,9))

# Plotting the complete range in white color to get the major ticks
a1.plot(date1, closep1, color='white') 
a1.plot(date1[0:48], closep1[0:48]) # Plotting the wanted data only up to 48 in color

выход

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...