Проблемы с использованием графиков, таких как matplotlib с TabPy - PullRequest
0 голосов
/ 21 февраля 2020

Я хотел бы иметь возможность использовать графики, созданные в Python (т.е. графики, сгенерированные из matplotlib или seaborn) в моих книгах Tableau. Посмотрите код ниже в моей попытке сделать простой синусоидальный график и показать его в рабочей таблице Tableau. Как вы можете видеть на прилагаемом изображении , я получаю только строку, переданную в книгу Tableau, а не визуализированную фигуру. Как я могу решить эту проблему?

import json
import base64
import numpy as np
import math
import matplotlib.pyplot as plt
from tabpy.tabpy_tools.client import Client

connection = Client('http://localhost:9004/')

def SinePlot(freq, amp):
    x = np.array(np.linspace(1,100,100))
    y = []
    for i in range(len(x)):
        y_i = math.sin(x[i])
        y.append(y_i)
        i += 1
    fig = plt.figure()
    ax = plt.subplot(111)
    ax.plot(x, y)
    plt.title('Sine Wave')
    plt.legend('sin')
    fig.savefig('plot.png')
    data = {}
    with open('plot.png', mode='rb') as file:
        img = file.read()
    data['img'] = base64.encodebytes(img).decode("utf-8")
    answer = json.dumps(data)
    return answer

connection.deploy('SinePlot Func',
    SinePlot,
    'Plots a sine wave', override = True)

print('done')
...