我有类似的数组:
import numpy as np
np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
我想以一种不错的方式进行可视化,例如:
但分辨率: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]: 第二个答案是最接近我需要的答案: Converting latex code to Images (or other displayble format) with Python 但是,正如我在下面的评论中所述,我在使用matplotlib和Latex的不同方法的kaggle上遇到错误:
FileNotFoundError: [Errno 2] No such file or directory: 'latex': 'latex'
答案 0 :(得分:1)
Matplotlib可以render text with LaTeX,因此您可以利用它来进行这种可视化:
import numpy as np
import matplotlib.pyplot as plt
def 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)
输出:
答案 1 :(得分:0)
您正在使用的Kaggle内核似乎无法访问LaTex解释器。
如果您只想为演示文稿创建一些图像,则可以签出Latex 2 png。在这里您必须输入
\begin{bmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{bmatrix}
这将导致以下图像: