Есть ли функция Matplotlib для рисования топора или горизонтальной линии с шагом 2 минуты? - PullRequest
0 голосов
/ 29 апреля 2019

Я работаю над проблемой с данными, моя главная проблема - создать сетку для некоторых станций. я не мог сделать топор или горизонтальную линию с пунктирным стилем линии и имел шаг 2 минуты.

%matplotlib

import numpy as np
import matplotlib as mpl
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
import pandas as pd
from pptx import Presentation
from pptx.util import Inches
try:

    from StringIO import StringIO
except ImportError:
    from io import StringIO
from IPython.display import Image

def grid_sncf_generation_mitry():
    plt.figure(figsize=(10,5))


    # general var



    # id station
    plt.ylabel("MITRY")

    # Adding the time zone / restricted time zone for a good visualization

    v2=np.datetime64('2019-04-13T03:30')
    v1=np.datetime64('2019-04-13T05:40')

    # Adding Stations V5 / V3 / SAS5 / SAS3

    plt.hlines("GA",v1,v2,"grey","dotted",colors=[255,255,255])
    plt.hlines("SAS3",v1,v2,"grey","dotted")
    plt.hlines("SAS5",v1,v2,"grey","dotted")
    plt.hlines("V3",v1,v2,"grey","dotted")
    plt.hlines("V5",v1,v2,"grey","dotted")


    # Adding Vertical lines
    plt.vlines(v2,0,4,"grey","dashdot")
    v2=np.datetime64('2019-04-13T04:00')
    plt.vlines(v2,0,4,"black","solid")
    v2=np.datetime64('2019-04-13T04:30')
    plt.vlines(v2,0,4,"grey","dashdot")
    v2=np.datetime64('2019-04-13T05:00')
    plt.vlines(v2,0,4,"black","solid")
    v2=np.datetime64('2019-04-13T05:30')
    plt.vlines(v2,0,4,"grey","dashdot")

    plt.axhline(y='V5',xmin=0.046, xmax=0.5)


    # Time axis
    # Adding Hours
    myFmt = mdates.DateFormatter('%H')
    plt.gca().xaxis.set_major_formatter(myFmt)
    plt.gca().xaxis.set_major_locator(mdates.HourLocator())

    # Adding Minutes
    myFmt2 = mdates.DateFormatter('%M')
    plt.gca().xaxis.set_minor_formatter(myFmt2)
    plt.gca().xaxis.set_minor_locator(mdates.MinuteLocator([10, 20, 30, 40, 50]))


    # Minimisize the police of minutes
    for tick in plt.gca().xaxis.get_minor_ticks():
        tick.label.set_fontsize(6)


    # Ajustmenet xaxis on the top 
    axes = plt.gca()
    axes.xaxis.set_ticks_position('top')


    plt.show()
    plt.savefig('graph.jpg')

grid_sncf_generation_mitry()

Я ожидаю, что выходные данные будут горизонтальными линиями с шагом 2 минуты, но фактический результат не имеет значения (только точки).

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