2016-10-20 103 views
0

我已经使用matplotlib为绘图设置图像背景。但曲线的颜色在某些地方与背景混合。任何人都可以帮助我减少背景的不透明度,让实际情节更加明显。我的代码,直到这一点 -Matplotlib - 更改用作背景的图像的不透明度

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) 

enter image description here

回答

0

你有没有尝试过这样的:

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