1. 一行一列图
import matplotlib.pyplot as plt
# 全局设置
font_path = '/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf'
fm.fontManager.addfont(font_path)
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['font.size'] = 16
plt.rcParams['axes.linewidth'] = 2
plt.rcParams['axes.titlesize'] = 16
plt.rcParams['axes.labelsize'] = 20
plt.rcParams['axes.labelweight'] = 'bold'
plt.rcParams['xtick.labelsize'] = 16
plt.rcParams['ytick.labelsize'] = 16
plt.rcParams['legend.fontsize'] = 16
fig, ax = plt.subplots(figsize=(8, 6), dpi=300)
ax.plot([1,2,3], [4,5,6], linewidth=1.8, marker='o', markersize=7)
plt.xlabel('Time (ps)')
plt.ylabel(r'MSD ($\mathrm{\AA}^2$)')
plt.xticks(fontweight = 'bold')
plt.yticks(fontweight = 'bold')
plt.legend(prop = {'weight' :'bold'})
plt.tight_layout()
plt.show()
2. 一行两列图
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['font.size'] = 12
plt.rcParams['axes.titlesize'] = 16
plt.rcParams['axes.labelsize'] = 14
plt.rcParams['xtick.labelsize'] = 12
plt.rcParams['ytick.labelsize'] = 12
plt.rcParams['legend.fontsize'] = 12
plt.rcParams['axes.linewidth'] = 1.5
fig, axs = plt.subplots(1, 2, figsize=(12, 5), dpi=300)
for ax in axs:
ax.plot([1,2,3], [4,5,6], linewidth=1.8, marker='o', markersize=7)
ax.set_xlabel("X轴", fontsize=14)
ax.set_ylabel("Y轴", fontsize=14)
ax.legend(["数据"], frameon=True)
plt.tight_layout()
plt.savefig('figure.png',dpi=600)
plt.savefig('figure.pdf',dpi=600)
plt.show()
3. 两行两列图
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['font.size'] = 12
plt.rcParams['axes.titlesize'] = 16
plt.rcParams['axes.labelsize'] = 14
plt.rcParams['xtick.labelsize'] = 12
plt.rcParams['ytick.labelsize'] = 12
plt.rcParams['legend.fontsize'] = 12
plt.rcParams['axes.linewidth'] = 1.5
fig, axs = plt.subplots(2, 2, figsize=(10, 8), dpi=300)
for ax in axs.flat:
ax.plot([1,2,3], [4,5,6], linewidth=1.8, marker='o', markersize=7)
ax.set_xlabel("X轴", fontsize=14)
ax.set_ylabel("Y轴", fontsize=14)
ax.legend(["数据"], frameon=True)
plt.tight_layout()
plt.show()
4. 处理 1*2数据
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Agg')
import argparse
parser = argparse.ArgumentParser(description='deal two column data')
parser.add_argument('filename')
parser.add_argument('xlabel')
parser.add_argument('ylabel')
args = parser.parse_args()
data_txt = args.filename
x_label = args.xlabel
y_label = args.ylabel
# print('='*40)
# filename = input('请输入文件名:').strip()
# x_label = input("请输入x轴标签(直接回车可跳过): ").strip()
# y_label = input("请输入y轴标签(直接回车可跳过): ").strip()
# print("="*40)
# data_txt = filename
# x_label = x_label
# y_label = y_label
data = np.loadtxt(data_txt)
plt.rcParams['font.size'] = 16
plt.rcParams['axes.linewidth'] = 2
plt.rcParams['axes.titlesize'] = 16
plt.rcParams['axes.labelsize'] = 20
plt.rcParams['axes.labelweight'] = 'bold'
plt.rcParams['xtick.labelsize'] = 16
plt.rcParams['ytick.labelsize'] = 16
plt.rcParams['legend.fontsize'] = 16
figure = plt.figure(figsize=(8,6),dpi = 300)
grid = figure.add_gridspec(1,1)
ax1 = figure.add_subplot(grid[0,0])
x = data[:,0]
y = data[:,1]
ax1.plot(x,y,linewidth=1.8)
plt.xlabel(x_label)
plt.ylabel(y_label)
plt.xticks(fontweight = 'bold')
plt.yticks(fontweight = 'bold')
plt.legend(prop = {'weight' :'bold'})
plt.tight_layout()
plt.savefig('plot.png',dpi = 300)
转载请注明来源 有问题可通过github提交issue