मैं matplotlib.animation का उपयोग करके एक एनिमेटेड लाइन प्लॉट बना रहा हूं। मैं स्पष्ट रूप से इस तरह के समुद्री प्लॉट पृष्ठभूमि रंग के साथ जाने के लिए एक कस्टम पृष्ठभूमि रंग के साथ एक आकृति बना देता हूं:

fig, ax = plt.subplots(ncols=1, nrows=3, figsize=(8, 13.5))
fig.patch.set_facecolor('#EAEAF2')

plt.show() के साथ प्लॉट करते समय, पूरी आकृति का बैकग्राउंड ग्रे होता है। हालांकि, लाइन-प्लॉट को एनिमेट करते समय, फिगर बैकग्राउंड डिफ़ॉल्ट सफेद होता है (अक्ष के अंदर प्लॉट बैकग्राउंड अभी भी सीबोर्न ग्रे है)। यहाँ प्रासंगिक एनीमेशन कोड है:

plt.style.use('seaborn')
fig, ax = plt.subplots(ncols=1, nrows=3, figsize=(8, 13.5))
fig.patch.set_facecolor('#EAEAF2')

line, = ax[0].plot([], [])
vline = ax[0].axvline(x=5, color='gray')

def init():
    line.set_data(scales, [np.nan] * len(scales))
    return line, 

def update(i):
    y = data[i]
    line.set_data(scales, y)
    line.set_color(sns.cubehelix_palette(22)[i])
    vline.set_xdata([i + 6])
    return line, vline,

ani = animation.FuncAnimation(fig, update, init_func=init, interval=200, frames=22, blit=False)
ani.save('animation.gif')

कोई विचार यहाँ क्या हो रहा है? एनिमेटर पृष्ठभूमि का रंग क्यों बदलता है? एनिमेट करते समय मैं आकृति पृष्ठभूमि रंग को कैसे नियंत्रित कर सकता हूं?

0
Texfy 13 जिंदा 2020, 14:09

1 उत्तर

सबसे बढ़िया उत्तर

नहीं, लेकिन सहेजी गई छवियों में हमेशा सफेद पृष्ठभूमि रंग होता है, जब तक कि अन्यथा निर्दिष्ट न हो, जैसे

ani.save('animation.gif', writer="imagemagick", savefig_kwargs=dict(facecolor='#EAEAF2'))
1
ImportanceOfBeingErnest 13 जिंदा 2020, 12:53