Построение временной диаграммы с использованием Matplotlib - PullRequest
0 голосов
/ 31 марта 2020

Я хочу реализовать временную диаграмму простой схемы И, которая принимает A и B в качестве входа и дает C в качестве выхода вместе с любой задержкой тактового сигнала. Но я не встречал никакого кода здесь или на любом другом сайте, который помог бы мне или дал какие-либо подсказки. Понятия не имею, как подойти к этой проблеме. Новое в python и библиотека matplotlib. Буду признателен за любую помощь или предложение. Спасибо!

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Нашел пару ссылок, которые вам помогут.

  1. Wavedrom Python Пакет https://pypi.org/project/wavedrom/

  2. Drawtime - редактор и средство визуализации для временных диаграмм (Найдено при выполнении случайного поиска) Источник: https://github.com/max99x/drawtime

Надеюсь, это поможет.

0 голосов
/ 31 марта 2020

Используйте функцию plt.step ()

Просмотр do c: https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.step.html

import matplotlib.pyplot as plt
import numpy as np

def my_lines(ax, pos, *args, **kwargs):
    if ax == 'x':
        for p in pos:
            plt.axvline(p, *args, **kwargs)
    else:
        for p in pos:
            plt.axhline(p, *args, **kwargs)

bits = [0,1,0,1,0,0,1,1,1,0,0,1,0]
data = np.repeat(bits, 2)
clock = 1 - np.arange(len(data)) % 2
manchester = 1 - np.logical_xor(clock, data)
t = 0.5 * np.arange(len(data))


my_lines('x', range(13), color='.5', linewidth=2)
my_lines('y', [0.5, 2, 4], color='.5', linewidth=2)
plt.step(t, clock + 4, 'r', linewidth = 2, where='post')
plt.step(t, data + 2, 'r', linewidth = 2, where='post')
plt.step(t, manchester, 'r', linewidth = 2, where='post')
plt.ylim([-1,6])

for tbit, bit in enumerate(bits):
    plt.text(tbit + 0.5, 1.5, str(bit))

plt.gca().axis('off')
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...