How preventing blemishes on the contour plot

Hello there. Following are contour plots corresponding to the same data. In the first case, the plot is directly output by Matplolib, and in the second case, it is the plot published by Streamlit. When the plot is transferred to Streamlit, some blemishes appear along with degradation of quality.
For more complex plots, these blemishes would become problematic, so I was wondering if there are ways to prevent these blemishes and maintain the quality.

matplotlib

Following is my code:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.colors as colors

mygreens = colors.LinearSegmentedColormap.from_list('mygreens',
                                                    ['#000000', '#00FF00'])
def f(r):
    return ((r**2 - 1)**2)

n1,n2 = 50, 50
x11 = []
y11 = []
z11 = []
for i in range(n1):
    tmpx=[]
    tmpy=[]
    tmpz=[]
    for j in range(n2):
        tmpx.append(r11[i] * np.cos(phi11[j]))
        tmpy.append(r11[i] * np.sin(phi11[j]))
        tmpz.append(f(r11[i]))
    x11.append(tmpx)
    y11.append(tmpy)
    z11.append(tmpz)

fig1 = plt.figure()
ax1 = fig1.add_subplot()
ax1.set_title('The output of st.pyplot()')
surf = ax1.contourf(np.array(x11), np.array(y11), np.array(z11), 200, cmap=mygreens,
                        vmin=np.amin(z11), vmax=np.amax(z11))
fig1.colorbar(surf)
st.pyplot(fig1)

The problem was caused by the antialiased option being set to true when creating the contour plot. Setting antialiased=False solved the problem.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.