VSCode 插件 Python Image Preview 使用笔记

发布时间:2026/7/10 15:23:11

VSCode 插件 Python Image Preview 使用笔记 1. 介绍Python Image Preview 支持 numpy, pillow, opencv-python, matplotlib, seaborn, plotly, imageio, skimage, tensorflow, pytorch 等library的可显示为图像的变量。这里以matplotlib官方的一个热力图例程为例来展示如何使用Python Image Preview插件在远程调试时查看绘制的实验图像。注意虽然支持torch.Tensor但是仅支持cpu上的Tensor不支持gpu中的Tensor。2. 安装3. 使用3.1. 示例代码import numpy as np import matplotlib import matplotlib.pyplot as plt def heatmap(data, row_labels, col_labels, axNone, cbar_kw{}, cbarlabel, **kwargs): Create a heatmap from a numpy array and two lists of labels. Parameters ---------- data A 2D numpy array of shape (M, N). row_labels A list or array of length M with the labels for the rows. col_labels A list or array of length N with the labels for the columns. ax A matplotlib.axes.Axes instance to which the heatmap is plotted. If not provided, use current axes or create a new one. Optional. cbar_kw A dictionary with arguments to matplotlib.Figure.colorbar. Optional. cbarlabel The label for the colorbar. Optional. **kwargs All other arguments are forwarded to imshow. if not ax: ax plt.gca() # Plot the heatmap im ax.imshow(data, **kwargs) # Create colorbar cbar ax.figure.colorbar(im, axax, **cbar_kw) cbar.ax.set_ylabel(cbarlabel, rotation-90, vabottom) # Show all ticks and label them with the respective list entries. ax.set_xticks(np.arange(data.shape[1]), labelscol_labels) ax.set_yticks(np.arange(data.shape[0]), labelsrow_labels) # Let the horizontal axes labeling appear on top. ax.tick_params(topTrue, bottomFalse, labeltopTrue, labelbottomFalse) # Rotate the tick labels and set their alignment. plt.setp(ax.get_xticklabels(), rotation-30, haright, rotation_modeanchor) # Turn spines off and create white grid. ax.spines[:].set_visible(False) ax.set_xticks(np.arange(data.shape[1]1)-.5, minorTrue) ax.set_yticks(np.arange(data.shape[0]1)-.5, minorTrue) ax.grid(whichminor, colorw, linestyle-, linewidth3) ax.tick_params(whichminor, bottomFalse, leftFalse) return im, cbar def annotate_heatmap(im, dataNone, valfmt{x:.2f}, textcolors(black, white), thresholdNone, **textkw): A function to annotate a heatmap. Parameters ---------- im The AxesImage to be labeled. data Data used to annotate. If None, the images data is used. Optional. valfmt The format of the annotations inside the heatmap. This should either use the string format method, e.g. $ {x:.2f}, or be a matplotlib.ticker.Formatter. Optional. textcolors A pair of colors. The first is used for values below a threshold, the second for those above. Optional. threshold Value in data units according to which the colors from textcolors are applied. If None (the default) uses the middle of the colormap as separation. Optional. **kwargs All other arguments are forwarded to each call to text used to create the text labels. if not isinstance(data, (list, np.ndarray)): data im.get_array() # Normalize the threshold to the images color range. if threshold is not None: threshold im.norm(threshold) else: threshold im.norm(data.max())/2. # Set default alignment to center, but allow it to be # overwritten by textkw. kw dict(horizontalalignmentcenter, verticalalignmentcenter) kw.update(textkw) # Get the formatter in case a string is supplied if isinstance(valfmt, str): valfmt matplotlib.ticker.StrMethodFormatter(valfmt) # Loop over the data and create a Text for each pixel. # Change the texts color depending on the data. texts [] for i in range(data.shape[0]): for j in range(data.shape[1]): kw.update(colortextcolors[int(im.norm(data[i, j]) threshold)]) text im.axes.text(j, i, valfmt(data[i, j], None), **kw) texts.append(text) return texts fig, ax plt.subplots() vegetables [cucumber, tomato, lettuce, asparagus, potato, wheat, barley] farmers [Farmer Joe, Upland Bros., Smith Gardening, Agrifun, Organiculture, BioGoods Ltd., Cornylee Corp.] harvest np.array([[0.8, 2.4, 2.5, 3.9, 0.0, 4.0, 0.0], [2.4, 0.0, 4.0, 1.0, 2.7, 0.0, 0.0], [1.1, 2.4, 0.8, 4.3, 1.9, 4.4, 0.0], [0.6, 0.0, 0.3, 0.0, 3.1, 0.0, 0.0], [0.7, 1.7, 0.6, 2.6, 2.2, 6.2, 0.0], [1.3, 1.2, 0.0, 0.0, 0.0, 3.2, 5.1], [0.1, 2.0, 0.0, 1.4, 0.0, 1.9, 6.3]]) im, cbar heatmap(harvest, vegetables, farmers, axax, cmapRdYlBu_r, cbarlabelharvest [t/year]) texts annotate_heatmap(im, valfmt{x:.1f} t) fig.tight_layout() plt.show()3.2. 打断点开始调试将断点打到文件的最后一行点击左侧debug的绿色箭头开始调试3.3. 激活插件并显示图像然后按下Ctrlp在命令框内输入Python Image Preview激活插件右下角显示插件已激活接下来双击需要可视化的变量稍等1~2秒该变量上面会出现一个小灯泡。点击变量上的小灯泡点击fig preview就可以显示图像。参考文献如何在Vscode连接远程服务器时做可视化——Vscode插件Python Image Preview介绍 - MapleTx - 博客园

相关新闻