2017-05-09 36 views
0

我的代碼如下。我正在使用MatPlotLib創建一個圖像,但圖像不是在png中呈現。有人請修復我的代碼,以便渲染。我的圖像將打印到PNG,但沒有任何顯示,它在plot.show運行時顯示圖像

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 

#Sets the size of the chart 
from pylab import rcParams 
rcParams['figure.figsize'] = 7, 2 

#AverageAnnualMedicalCostPerEE = "{}".format('jpg') 
#print AverageAnnualMedicalCostPerEE 
#Creates the dataframe 
raw_data = {'plan_type': ['Total Annual Cost, Single', 'Total Annual Cost,  
Family'], 
     'Your Plan':  [6000, 3000], 
     'Benchmark':  [4800, 1600], 
     'Region':  [1800, 2800], 
     'Industry':  [4900, 1300], 
     'Size':  [5700, 1600], 
    } 

data = ['Your Plan','Benchmark','Region','Industry','Size'] 

df = pd.DataFrame(raw_data, 
       columns = ['plan_type','Your Plan', 'Benchmark', 'Region',  
'Industry', 'Size']) 

#Plots the bars, adding desired colors 
ax = df.plot.bar(rot=0, color=['#ffc000',"#305496", '#8ea9db', '#b4c6e7',  
'#D9E1F2'], 
      width = 0.8) 

#Adds data labels to top of bars 
for p in ax.patches[0:]: 
    h = p.get_height() 
    x = p.get_x()+p.get_width()/2. 
    if h != 0: 
     ax.annotate('$' + "%g" % p.get_height(), xy=(x,h), xytext=(0,4), 
     rotation=0, 
       textcoords="offset points", ha="center", va="bottom",  
       fontsize='small', color='grey') 

# Remove Bordering Frame 
ax.spines['top'].set_visible(False) 
ax.spines['right'].set_visible(False) 
ax.spines['left'].set_visible(False) 
ax.spines['bottom'].set_color('#B4C7E7') 
ax.get_xaxis().tick_bottom() 
ax.get_yaxis().tick_left() 

# Remove Y-axis Labels 
ax.axes.get_yaxis().set_visible(False) 

#Sets x-axis limits and margins 
ax.set_xlim(-0.5, +1.5) 
ax.margins(y=0) 

# Set Y-Axis Ticks to the Right 
ax.yaxis.tick_right() 

# Set the Y Axis Limits 
ax.set_ylim(0,(df[['Your  
Plan','Benchmark','Region','Industry','Size']].max(axis=1).max(axis=0)*1.5)) 
ax.margins(y=0) 

#Adds legend to the top of the page 
ax.legend(ncol=len(df.columns), loc="Lower Left", bbox_to_anchor=  
(0,1.02,1,0.08), 
     borderaxespad=0, mode="expand",frameon=False, fontsize='small') 

#Add labels to the x-axis 
ax.set_xticklabels(df["plan_type"], fontsize='small') 
ax.xaxis.set_ticks_position('none') 
#shows the plot and prints it to 
plt.show() 
plt.savefig('AverageAnnualMedicalCostPerEE.png') 

所以,我再次希望得到一個PNG然後我可以在以後導入到表中,並加入到我的故事。後者很容易,除了圖像渲染問題。請讓我知道你是否可以解決這個問題,可能是一個快速解決方案。

回答

1

我想你應該改變保存圖像並顯示它的順序,因爲圖形會在plt.show()後重置。所以你應該能夠通過從代碼中刪除plt.show()命令或者切換plt.savefig(...)plt.show()來解決這個問題。

+0

真棒,我的下一個問題是如何將這個添加到故事?即 –

+0

self.append(AverageAnnualMedicalCostPerEE.png) –