直接上代码吧
# MATLAB画图的替代品 import matplotlib import numpy as np import matplotlib.pyplot as plt from cycler import cycler t = np.linspace(0.0, 2.0) alphac = np.sin(t) alphac_td = np.cos(t) alpha = np.sin(2.0*t) # 指定画图风格 plt.rcParams.update({ "legend.fancybox": False, "legend.frameon": False, # 有没有框 "font.family": "DeJavu Serif", #不知为何找不到serif,只能用这个 "font.serif": ["Times"], # 图形字体 # 颜色,线型排序 注意颜色和线型的个数要匹配 # "axes.prop_cycle": (cycler('color', ['k', 'r', 'b', 'g']) + cycler('ls', ['-', '--', ':', '-.'])), "axes.prop_cycle": (cycler('color', ["#4477AA", "#EE6677", "#228833", "#CCBB44"]) + cycler('ls', ['-', '--', ':', '-.'])), # "axes.prop_cycle": (cycler('color', ["#0d49fb", "#e6091c", "#26eb47", "#8936ff"]) + cycler('ls', ['-', '--', ':', '-.'])), "xtick.direction": 'in', # 坐标朝里 "xtick.major.size": 3, # 横轴tick的长度 "xtick.major.width": 0.5, # 主坐标 "xtick.minor.size": 1.5, "xtick.minor.width": 0.5, "xtick.minor.visible": False, # 次坐标可不可见 "xtick.top": False, # 上边有没有刻度线 "ytick.direction": 'in', "ytick.major.size": 3, "ytick.major.width": 0.5, "ytick.minor.size": 1.5, "ytick.minor.width": 0.5, "ytick.minor.visible": False, "ytick.right": False, # 右边有没有刻度线 "savefig.bbox": 'tight', "savefig.pad_inches": 0.05, "figure.figsize": [3.3, 2.5], # 图片大小 1英寸等于2.54厘米 "figure.dpi": 600, "font.size": 6, # 图像整体的字号 "axes.linewidth": 0.5, # 坐标轴宽度 'axes.grid': False, # grid "grid.linewidth": 0.5, # 如果有grid的话,网格宽度 "lines.linewidth": 1.0 # 线宽 }) # 单个图 pparam = dict(xlabel='Time/ (s)', ylabel=r'$alpha$/rad') # 横纵坐标 fig, ax = plt.subplots() ax.plot(t, alphac, label='alphac') ax.plot(t, alphac_td, label='alphac_td') ax.plot(t, alpha, label='alpha_real') leg = ax.legend(fontsize=8) ax.autoscale(tight=True) ax.set(**pparam) fig.savefig('figures/fig3b.jpg', dpi=600) # 两个图竖着排 pparam = dict(xlabel='Time/ (s)', ylabel=r'$alpha$/rad') # 横纵坐标 fig, ax = plt.subplots(2, 1) ax1 = ax[0] ax1.plot(t, alphac, label='alphac') ax1.plot(t, alphac_td, label='alphac_td') ax1.plot(t, alpha, label='alpha_real') leg = ax1.legend(fontsize=8) ax1.autoscale(tight=True) ax1.set(**pparam) ax2 = ax[1] ax2.plot(t, alphac, label='alphac') ax2.plot(t, alphac_td, label='alphac_td') ax2.plot(t, alpha, label='alpha_real') leg = ax2.legend(fontsize=8) ax2.autoscale(tight=True) ax2.set(**pparam) fig.savefig('figures/fig33b.jpg', dpi=600) # 两个图横着排 pparam = dict(xlabel='Time/ (s)', ylabel=r'$alpha$/rad') # 横纵坐标 fig, ax = plt.subplots(1, 2) ax1 = ax[0] ax1.plot(t, alphac, label='alphac') ax1.plot(t, alphac_td, label='alphac_td') ax1.plot(t, alpha, label='alpha_real') leg = ax1.legend(fontsize=8) ax1.autoscale(tight=True) ax1.set(**pparam) ax2 = ax[1] ax2.plot(t, alphac, label='alphac') ax2.plot(t, alphac_td, label='alphac_td') ax2.plot(t, alpha, label='alpha_real') leg = ax2.legend(fontsize=6) # 单独设置 ax2.autoscale(tight=True) ax2.set(**pparam) fig.savefig('figures/fig333b.jpg', dpi=600)
这里边最大的问题就是Times 这个字体经常没法用,可能需要单独拷贝进matplotlib的字体文件夹里
画出图来长这样
- 竖着排
- 横着排
- 就一个
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)