简体   繁体   中英

Matplotlib - changing opacity of the image used as a background for a plot

I have used matplotlib to set an image background for a plot. But the color of the curves gets mixed with the background at some places. Can anyone help me reduce the opacity of the background, so that the actual plot is more visible. my code till this point is --

import pandas as pd
import sys, os
import matplotlib.pyplot as plt
import numpy as np
import itertools
from scipy.misc import imread

def flip(items, ncol):
    return itertools.chain(*[items[i::ncol] for i in range(ncol)])

df = pd.read_pickle('neer.pickle')
rows = list(df.index)
countries = ['USA','CHN','JPN','DEU','GBR','FRA','IND','ITA','BRA','CAN','RUS']
x = range(len(rows))
df = df.pct_change()

fig, ax = plt.subplots(1)
for country in countries:
    ax.plot(x, df[country], label=country)

plt.xticks(x, rows, size='small', rotation=75)
#legend = ax.legend(loc='upper left', shadow=True)
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.show(1)

df1 = df[countries]
plt.figure(2)
for country in countries:
    my_plot = plt.plot(x, 10*df[country], label=country)
img = imread("world.png")
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.imshow(img,zorder=0,  extent=[0.1, 30.0, -10.0, 10.0])
plt.set_alpha(0.5)
plt.title('Variation of NEER across the world')
plt.show(2)

在此处输入图片说明

您是否尝试过类似的方法:

plt.imshow(img, zorder=0,  extent=[0.1, 30.0, -10.0, 10.0], alpha = 0.6)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM