我一直在使用OpenPyxl来使用其他CSV文件中的数据创建Excel工作簿。
目前我想根据下面的变量x
的数字列表将直方图插入到工作表中。
我找不到生成直方图的有效方法,我选择的选项是在matplotlib保存中生成直方图,然后放在工作表中,但是这看起来很简洁,我觉得我缺少一些合成器来直接传递{{1} } plt
。
使用img
的选项似乎并不完美,因为我有Reference
长度向量,而不想将它们写入此文件。
10^6
正如您所看到的,这会生成两个import numpy as np
import openpyxl
import matplotlib.pyplot as plt
wb = openpyxl.Workbook()
ws = wb.active
x = np.random.rand(100)
plt.clf()
plt.hist(x, bins=10)
plt.savefig('temp1.png')
img = openpyxl.drawing.image.Image('temp1.png',size=(300,300))
img.anchor(ws.cell('A1'))
ws.add_image(img)
plt.clf()
plt.plot(x)
plt.savefig('temp2.png')
img = openpyxl.drawing.image.Image('temp2.png',size=(300,300))
img.anchor(ws.cell('A15'))
ws.add_image(img)
wb.save("trial.xlsx")
个文件,整体看起来不干净。我不认为性能会受到太大影响,但毫无疑问会有更好的解决方案,优化在这里很有价值。
我会对表格的答案进行处理:"从使用OpenPyxl转换为..."作为最后的手段。