Загрузка файла Grails

Передайте оси на вызовы графика:

waterindep['waterpoint_type'].value_counts().plot(
    kind='bar',title='Waterpoint_Type', ax=ax1)
waterindep['waterpoint_type_group'].value_counts().plot(
    kind='bar',title='Waterpoint_Type_Group', ax=ax2)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
np.random.seed(2015)

fig1 = plt.figure(figsize=[15,8])
gs = gridspec.GridSpec(100,100)
ax1 = fig1.add_subplot(gs[:,0:50])
ax2 = fig1.add_subplot(gs[:,51:100])
waterindep = pd.DataFrame(np.random.randint(10, size=(100,2)), 
                          columns=['waterpoint_type', 'waterpoint_type_group'])
waterindep['waterpoint_type'].value_counts().plot(kind='bar',title='Waterpoint_Type', ax=ax1)
waterindep['waterpoint_type_group'].value_counts().plot(kind='bar',title='Waterpoint_Type_Group', ax=ax2)
plt.show()

Обратите внимание, что вы также можете использовать

fig, axs = plt.subplots(figsize=[15,8], ncols=2)
ax1, ax2 = axs

вместо gridspec.GridSpec для создания осей. Он будет иметь лучший вид между осями «из коробки».

22
задан bignose 1 May 2009 в 06:56
поделиться

1 ответ

Проблема состоит в том, что Вы читаете содержание файла в Строку при помощи "file.text". Содержание файла преобразовывается с системной кодировкой символов, даже если содержание является двоичным, не текст (например, файлы PDF являются двоичными), и отправленный клиенту, использующему кодирование ответа и таким образом modifing двоичное содержание. Необходимо скорее использовать другой подход как это:

def file = new File(params.fileDir)    
response.setContentType("application/octet-stream")
response.setHeader("Content-disposition", "attachment;filename=${file.getName()}")

response.outputStream << file.newInputStream() // Performing a binary stream copy
41
ответ дан Siegfried Puchbauer 29 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: