保存Python后曲面图变黑的颜色

2024-09-19 23:41:01 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么我的表面图颜色会从第一种颜色变化到第二种颜色?

pre-save

post-save

以下是我的绘图代码:

def Plots3d(U):

    fig = plt.figure()
    ax = fig.gca(projection='3d')
    y, x = U.shape

    Y = np.arange(0, y, 1)
    X = np.arange(0, x, 1)
    Y, X = np.meshgrid(Y, X)
    Z = U[Y, X]
    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, 
        linewidth=0.7, antialiased=False, cmap = cm.summer)

    plt.xlabel('Stock Price Nodes')
    plt.ylabel('Timesteps')
    plt.title('Analytical solution surface for 0 <= t <= 2')
    plt.show()

Tags: 代码绘图颜色defnpfigpltax
1条回答
网友
1楼 · 发布于 2024-09-19 23:41:01

这看起来像是一个分辨率问题:保存的绘图中的线条太粗,在保存时控制图形,使其变黑。在您的matplotlibrc文件中,保存的图形和使用plt.show生成的图形的默认分辨率可能不同。在

您可以尝试提高分辨率(每平方英寸的点数,或dpi)或减小线宽。在

为您提供几个可能的选择:

使用rcParams

from matplotlib import rcParams
# this changes the dpi of figures saved from plt.show() 
rcParams['figure.dpi'] = 300 
# this changes the dpi of figures saved from plt.savefig()
rcParams['savefig.dpi'] = 300 

在保存期间增加dpi

如果不想使用rcParams,可以在保存图时增加dpi:

^{pr2}$

减小线宽

或者,您可以尝试减小绘图表面的线宽

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, 
    linewidth=0.3, antialiased=False, cmap = cm.summer)

相关问题 更多 >