python绘图:利用python处理matlab中的mat 文件,并绘制图像 及 python绘图中legend 绘图中legend相关命令总结

import matplotlib
import scipy.io as scio
import matplotlib.pyplot as plt

# 首先在matlab的工作区中,将所要处理的mat文件 另存为 到本次python所在的文件夹中,

# 将matlab 中产生的mat 文件 导入进来,其中 D:/Pycharmproject/five_basefunction_plot/l_d 为py程序所在的文件夹
dataFile = 'D:/Pycharmproject/five_basefunction_plot/l_d'
data = scio.loadmat(dataFile)

# 将matlab数据赋值给python变量
data1 = data['l_d']
# 从matlab 导入进来的data1  在python 中 是按字典的形式存储的,所以需要将其转化为list
data1.reshape(8168,-1)
# reshape(8168,-1),8168 代表固定8168行,-1 代表多少列,系统根据元素数量自动计算好)

plt.plot(data1[:,0], color = 'orchid',label= "$wm_{i,1}$")
plt.plot(data1[:,1], color = 'peru',label='$wm_{i,2}$')
plt.plot(data1[:,2], color = 'dodgerblue',label='$wm_{i,3}$')
plt.plot(data1[:,3], color = 'brown',label='$wm_{i,4}$')
plt.plot(data1[:,4], color = 'darkslategray',label='$wm_{i,5}$')
plt.plot(data1[:,5], color = 'lightsalmon',label='$wm_{i,6}$')
plt.plot(data1[:,6], color = 'orange',label='$wm_{i,7}$')
plt.plot(data1[:,7], color = 'aquamarine',label='$wm_{i,8}$')
plt.plot(data1[:,8], color = 'hotpink',label='$wm_{i,9}$')
plt.plot(data1[:,9], color = 'gold',label='$wm_{i,10}$')
plt.plot(data1[:,10], color = 'lavender',label='$wm_{i,11}$')
plt.plot(data1[:,11], color = 'teal',label='$wm_{i,12}$')
plt.plot(data1[:,12], color = 'turquoise',label='$wm_{i,13}$')
plt.plot(data1[:,13], color = 'plum',label='$wm_{i,14}$')
plt.plot(data1[:,14], color = 'limegreen',label='$wm_{i,15}$')
plt.plot(data1[:,15], color = 'lightpink',label='$wm_{i,16}$')
plt.plot(data1[:,16], color = 'lightskyblue',label='$wm_{i,17}$')
plt.plot(data1[:,17], color = 'grey',label='$wm_{i,18}$')
plt.plot(data1[:,18], color = 'skyblue',label='$wm_{i,19}$')
plt.plot(data1[:,19], color = 'silver',label='$wm_{i,20}$')
plt.plot(data1[:,20], color = 'cyan',label='$wm_{i,21}$')
plt.plot(data1[:,21], color = 'crimson',label='$wm_{i,22}$')
plt.plot(data1[:,22], color = 'teal',label='$wm_{i,23}$')
plt.plot(data1[:,23], color = 'wheat',label='$wm_{i,24}$')
plt.plot(data1[:,24], color = 'darkcyan',label='$wm_{i,25}$')
plt.plot(data1[:,25], color = 'bisque',label='$wm_{i,26}$')
plt.plot(data1[:,26], color = 'tan',label='$wm_{i,27}$')
plt.plot(data1[:,27], color = 'violet',label='$wm_{i,28}$')
plt.plot(data1[:,28], color = 'thistle',label='$wm_{i,29}$')
plt.plot(data1[:,29], color = 'sandybrown',label='$wm_{i,30}$')
plt.plot(data1[:,30], color = 'springgreen',label='$wm_{i,31}$')
plt.plot(data1[:,31], color = 'darksalmon',label='$wm_{i,32}$')
plt.plot(data1[:,32], color = 'darkorange',label='$wm_{i,33}$')
plt.plot(data1[:,33], color = 'purple',label='$wm_{i,34}$')
plt.plot(data1[:,34], color = 'coral',label='$wm_{i,35}$')
plt.plot(data1[:,35], color = 'r',label='$wm_{i,36}$')
plt.plot(data1[:,36], color = 'cadetblue',label='$wm_{i,37}$')
plt.plot(data1[:,37], color = 'palevioletred',label='$wm_{i,38}$')
plt.plot(data1[:,38], color = 'steelblue',label='$wm_{i,39}$')
plt.plot(data1[:,39], color = 'salmon',label='$wm_{i,40}$')

# gca 得到当前图窗的坐标

# 设置x,y轴文字说明字体及大小
ax1 = plt.gca()
# ax1.set_title('Weights of Distriburbance Network.',fontsize = 17,fontname = 'Times New Roman')
ax1.set_ylabel('Weights',fontsize = 16,fontname = 'Times New Roman')
ax1.set_xlabel('Iteration(i)',fontsize = 16,fontname = 'Times New Roman')

# 设置x,y轴刻度字体及大小
x1_label = ax1.get_xticklabels()
[x1_label_temp.set_fontname('Times New Roman') for x1_label_temp in x1_label]
y1_label = ax1.get_yticklabels()
[y1_label_temp.set_fontname('Times New Roman') for y1_label_temp in y1_label]
plt.tick_params(axis='both',which='major',labelsize=14)

# 设置图例
# 图例启用tex语法, 若不启用,图例会变成tex直体,值得注意的是,图例字体通过字典设置,
# 将字体加到字典里,然后通过porp 关键字设置字体,没有fontname的关键字直接更改legend字体
matplotlib.rcParams['text.usetex'] = True
font = {'family': 'Times New Roman','style': 'italic'}

plt.legend(ncol=2,loc = 'upper left', bbox_to_anchor=(1,1.1),fontsize = 9.5,prop=font,
          frameon = 0,borderpad = 0,columnspacing = 0.3,handlelength=0.5)
# columnspaceing  列之间的距离, borderpad图例内部,框和字的边距离
# borderaxespad   横向图例框与图的距离
# labelspacing   图例之间纵向距离
# handlelength   图例线的长短
# handletexpad   线和文字的距离
# ncol           代表图例的列数



# plt.legend(ncol=10, bbox_to_anchor=(0,1.05,1,0.1), borderaxespad = 0,fontsize = 8.5,prop=font,mode = 'expand',frameon = 0)
plt.savefig('D://Homework/自适应/仿真记录/5_基函数/美化图像/image.jpg', dpi=600, bbox_inches='tight')
# 保存时复制粘贴的路径是D:\Homework\自适应\仿真记录\5_基函数\美化图像,需要将反斜杠改为斜杠,否则会报错
# bbox_inches 代表保存时尽量减少白边
plt.show()

        利用matlab 做完实验仿真以后,需要将数据通过美观的图展现,但matlab 的plot画图,修改起来较麻烦,所以便想利用python美化图像。最终结果如下图:

        代码的注释部分做了详细的说明,这个程序解决了从matlab得到mat文件到利用python绘制出图的全过程,希望能帮到大家。

                                              结果图

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值