Ziv*_*iva 4 python plot matplotlib
我使用matplotlib库绘制了一个图,它描绘了两个直方图和平均线.我认为如果添加传说,情节会更清晰.我想创建一个图例,说明这两条平均线的确切值.下面我附上我的代码和我生成的图表以及显示我想要实现的图片(这是我使用powerpoint添加图例的图片):
def setPlot(data, mycolor, myalpha, mylinestyle):
plt.style.use('ggplot')
plt.rc('xtick',labelsize=12)
plt.rc('ytick',labelsize=12)
plt.xlabel("Incomes")
plt.hist(data, bins=50, color= mycolor, alpha=myalpha)
plt.axvline(numpy.mean(data), color=mycolor, linestyle=mylinestyle, linewidth=1.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)


我将不胜感激任何建议.
- - - - - -解 - - - -
感谢来自wwii和tom的伟大建议,我能够实现我的想法的解决方案.我试图连接这两个建议,这就是我获得的:
def setPlot(data, mycolor, myalpha, mylinestyle):
plt.style.use('ggplot')
plt.rc('xtick',labelsize=12)
plt.rc('ytick',labelsize=12)
plt.xlabel("Incomes")
plt.hist(data, bins=50, color= mycolor, alpha=myalpha)
plt.axvline(numpy.mean(data), color=mycolor, linestyle=mylinestyle, linewidth=1.5, label=str(numpy.mean(data)))
plt.legend(loc='upper right')
plt.show()
Run Code Online (Sandbox Code Playgroud)
以及我生成的情节的例子:

非常感谢你的帮助!
您只需要给你axvline一个label,然后plt.legend在绘制两个直方图后调用.像这样:
import matplotlib.pyplot as plt
import numpy
def setPlot(data, mycolor, myalpha, mylinestyle):
plt.style.use('ggplot')
plt.rc('xtick',labelsize=12)
plt.rc('ytick',labelsize=12)
plt.xlabel("Incomes")
plt.hist(data, bins=50, color= mycolor, alpha=myalpha)
plt.axvline(numpy.mean(data), color=mycolor, linestyle=mylinestyle,
linewidth=1.5,label='{:5.0f}'.format(numpy.mean(data)))
setPlot(numpy.random.rand(100)*30000.,'r',0.5,'--')
setPlot(numpy.random.rand(100)*20000.,'b',0.5,'-')
plt.legend(loc=0)
plt.savefig('myfig.png')
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
5332 次 |
| 最近记录: |