分享

Python 使用matplotlib画图添加标注、及移动坐标轴位置

 落日下旳余晖 2018-04-29

代码实例

[python] view plain copy
 print?
  1. import matplotlib.pyplot as plt  
  2. import matplotlib  
  3. import numpy as np  
  4. #解决中文乱码问题,引入windows字体库  
  5. myfont = matplotlib.font_manager.FontProperties(fname=r'C:/Windows/Fonts/msyh.ttf')  
  6. x = np.linspace(-3,3,50)  
  7. y = 2*x + 1  
  8. plt.plot(x,y)  
  9. plt.figure(1,figsize=(8,5))  
  10. xticks = np.linspace(-3,3,11)  
  11. #plt.xticks(xticks)  设置坐标点  
  12. #yticks = np.linspace(-6,8,14)  
  13. #plt.yticks(yticks)  
  14. plt.xlabel("x")  
  15. plt.ylabel("y")  
  16. #挪动坐标位置  
  17. ax = plt.gca()  
  18. #去掉边框  
  19. ax.spines['top'].set_color('none')  
  20. ax.spines['right'].set_color('none')  
  21. #移位置 设为原点相交  
  22. ax.xaxis.set_ticks_position('bottom')  
  23. ax.spines['bottom'].set_position(('data',0))  
  24. ax.yaxis.set_ticks_position('left')  
  25. ax.spines['left'].set_position(('data',0))  
  26. ''''' 
  27. 然后标注出点(x0, y0)的位置信息. 用plt.plot([x0, x0,], [0, y0,], 'k--', linewidth=1.0) 
  28.  画出一条垂直于x轴的虚线 
  29. '''  
  30. x0 = 1  
  31. y0 = 2*x0 + 1  
  32. plt.plot([x0,x0,],[0,y0],'k--',linewidth=2.5)  
  33. # set dot styles  
  34. plt.scatter([x0, ], [y0, ], s=50, color='r') #在这点加个蓝色的原点 原点大小50  
  35. plt.title(u'Annotation 标注',fontproperties=myfont)  
  36. #标注方式1: 使用 annotate 接下来我们就对(x0, y0)这个点进行标注.  
  37. ''''' 
  38. 其中参数xycoords='data' 是说基于数据的值来选位置, xytext=(+30, -30) 和 
  39. textcoords='offset points' 对于标注位置的描述 和 xy 偏差值, arrowprops是对图中箭头类型的一些设置. 
  40. '''  
  41. plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30),  
  42.              textcoords='offset points', fontsize=16,  
  43.              arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))  
  44. ''''' 
  45. 标注方式2: 使用 text 
  46. 其中-3.7, 3,是选取text的位置, 空格需要用到转字符\ ,fontdict设置文本字体. 
  47. '''  
  48. plt.text(-3.7, 3, r'$.Annotation text 、 \mu\ \sigma_i\ \alpha_t$',  
  49.          fontdict={'size': 16, 'color': 'r'})  
  50.   
  51. plt.show()  


# 设置坐标点
plt.xlabel("x")
plt.ylabel("y")

# 挪动坐标位置
ax = plt.gca()
# 去掉边框
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')

bias_dict.pop(item)
ax.text(max(x), max(y), '{}={}\n{}={}\n{}={}'.format(list(bias_dict.keys())[0],list(bias_dict.values())[0],list(bias_dict.keys())[1],list(bias_dict.values())[1],list(bias_dict.keys())[2],list(bias_dict.values())[2]), fontdict=None,withdash=False)

# 移位置设为原点相交
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多