Как я могу маркировать единицы в LineLot ReportLab?

Может ли кто-нибудь сказать мне, что атрибут установлен для обозначения единиц в LinePlot в ReportLab? Кроме того, если вы знаете, как установить заголовок, это будет в конечном итоге очень полезно.

drawing = Drawing(50,50)
data = [(tuple(zip(matfile['chan'].item([6],matfile['chan'].item()[7].item()[0])))]
lp = LinePlot()
lp.data = data
lp.????? = (str(matfile['chan'].item()[3]), str(matfile['chan'].item()[2]))
drawing.add(lp)
elements.append(drawing)

На самом деле это будет внутри цикла - я загружаю файл.mat и там около 50 каналов, и я собираюсь отобразить почти все из них. В отдельности. Но сначала мне нужно получить представление о назначении меток (текст заголовка, который будет таким же, как и канал, а затем единицы для осей...). X Axis label всегда должен быть "Секундой", ярлык оси Y будет отличаться... иногда%, иногда давление, температура или скорость и т.д.

1 ответ

Я понятия не имею, как это сделать, но в итоге я использовал таблицы кадрирования, и я кое-что связал. Мне не удалось повернуть текст для метки оси y.

for channel in channels:
 drawing = Drawing(0,0)
 data = [(tuple(zip(matfile[channel].item()[6],matfile[channel].item()[7].item()[0])))]
 lp = LinePlot()
 lp.data = data
 lp.width = 6*inch
 lp.height = 3.25*inch

 stylesheet = getSampleStyleSheet()
 y_label = Paragraph(str(matfile[channel].item()[2]), stylesheet['Normal'])

 drawing.add(lp)
 plot_table = [['',str(channel)],
 [y_label, drawing],
 ['',matfile[channel].item()[3]]]

 t_framing_table = Table(plot_table)
 t_framing_table._argH[1] = lp.height + .5*inch
 t_framing_table._argW[1] = lp.width


 elements.append(t_framing_table)
 if break_page:
 elements.append(PageBreak())
 break_page = False
 else:
 break_page = True

licensed under cc by-sa 3.0 with attribution.