可视化 3x3 numpy 数组并将其保存为新的形状数组:400x600

我有这样的数组:


import numpy as np

np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

我想以某种很好的方式进行可视化,例如:

http://img2.mukewang.com/61811d5c0001bc4b03460235.jpg

但分辨率为:400 x 600。


所以最后我想要有新的形状数组 (400, 600) 如果使用以下方法绘制:


import matplotlib.pyplot as plt

plt.imshow(my_new_array)

将显示如上的图像。


是否可以?有什么包可以帮助我吗?


[编辑:]@Mad Physicist 评论后,我研究了乳胶,以下代码可以完成这项工作:


\documentclass{article}

\usepackage{amsmath}

\begin{document}    

\[    

  \begin{bmatrix}

    1 & 2 & 3 \\

    4 & 5 & 6 \\

    7 & 8 & 9


  \end{bmatrix}

\]


\end{document}

并且matplotlib可以选择在轴和标题上使用文本,但我不知道如何在绘图正文中使用它。也许空情节并在中间使用标题?


[edit2]:这里的第二个答案最接近我需要的: 使用 Python 将乳胶代码转换为图像(或其他可显示格式) 但是,正如我在下面的评论中所述,我在使用使用 matplotlib 和的不同方法的 kaggle 上遇到了错误乳胶:


FileNotFoundError: [Errno 2] No such file or directory: 'latex': 'latex'


慕的地6264312
浏览 229回答 2
2回答

互换的青春

Matplotlib 可以使用 LaTeX 渲染文本,因此您可以利用它来进行这种可视化:import numpy as npimport matplotlib.pyplot as pltdef show_mat(a, font_size, resolution=None, dpi=None):    resolution = resolution or (600, 400)    dpi = dpi or 100    res_x, res_y = resolution    inc_x = res_x / dpi    inc_y = res_y / dpi    rows, cols = a.shape    fig = plt.figure(figsize=(inc_x, inc_y), dpi=dpi)    ax = fig.add_subplot(111)    ax.set_axis_off()    a_str = r' \\ '.join(' & \quad & '.join(map(str, row)) for row in a)    alig = 'c' * (2 * cols - 1)    tex = r"$\left[\begin{{array}}{{{}}}{}\end{{array}}\right]$".format(alig, a_str)    ax.text(0.5, 0.5, tex, size=font_size,            horizontalalignment='center', verticalalignment='center',            transform=ax.transAxes)show_mat(np.arange(1, 10).reshape(3, 3), font_size=50)输出:

鸿蒙传说

您使用的 Kaggle 内核似乎无法访问 LaTex 解释器。如果您只想为演示文稿创建一些图像,您可以查看Latex 2 png。在这里你必须输入\begin{bmatrix}    1 & 2 & 3 \\    4 & 5 & 6 \\    7 & 8 & 9  \end{bmatrix}这将导致以下图像:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python