文章目录
- 一、x,y坐标图
- 1、基本操作
- 2、进阶操作
- (1)解决中文乱码情况
- (2)调整图像大小
- (3)加标题、坐标文字、坐标轴标签
- (5)去掉上边框
- 二、柱状图
- 1、柱状图画图原理
- 2、
- 三、颜色与标记形状
- 1、颜色表
- 2、形状表
又到了一年一度的论文级,大家是不是还在为怎么画图担忧呢,别担心,下载好Python软件,准备发车!!
一、x,y坐标图
1、基本操作
在使用Python画图之前,至少需要安装好matplotlib库,很简单,直接在终端:
pip install matplotlib
安装好之后,就可以进行简单画图了,用简单地二次函数举个例子。
y
=
x
2
{\rm{y}}\;{\rm{ = }}\;{x^2} % MathType!MTEF!2!1!+- % feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn % hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr % 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqiVu0Je9sqqr % pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs % 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai % aabeqaamaabaabauaakeaacaqG5bGaaGjbVlaab2dacaaMe8UaamiE % amaaCaaaleqabaGaaGOmaaaaaaa!45DA!
y=x2
那么在画这条曲线之前,需要确定一下x和y的范围和取值,比如x的取值从0~9,那么在代码中可以这样表示:
x = np.arange(0,10)
y = x**2
有了取值就可以画图了,直接用下面的代码进行最简单的画图:
import matplotlib.plot as plt
x = np.range(1, 10)
y = x**2
plt.plot(x, y) # 画图函数
plt.show() # 用于显示所画的图形
# plt.savfig("demo.svg", dpi=300)
使用plt.show()
函数可以显示所画图形,使用plt.savfig("demo.svg", dpi=300)
可以将所画的图形保存下来,这里的svg格式是论文中的常用格式,后面的dpi
表示图像的清晰度,这里一般设置为300或者500就够了,设置的太高的话,电脑很有可能死机,或者图像打不开。(电脑性能不好,最好不要设置到1000以上)
2、进阶操作
(1)解决中文乱码情况
如果在画图的过程中,遇到无法正常显示中文的情况,在画图前加上这两句代码:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文字体
plt.rcParams['axes.unicode_minus'] = False # 显示负号
(2)调整图像大小
想要调整图像大小的话,可以在画图代码的最前边,加上这样一句代码:
plt.figure(figsize=(10, 5))
这里取决于自己,如果是电力电子相关专业的话,可以将图像适当拉长,看起来会比较好看。
(3)加标题、坐标文字、坐标轴标签
plt.title("标题", fontsize=25)
plt.xticks(fontsize=15, fontweight='bold') # 默认字体大小为10
plt.yticks(fontsize=15, fontweight='bold')
plt.xlabel('x轴标签', fontsize=25, fontweight='bold')
plt.ylabel('y轴标签', fontsize=25, fontweight='bold')
加上这些东西之后,效果图如下所示(可以与上面的图像比较一下):
如果一张图中出现不止一条曲线,也可以加上legend,
plt.plot(x, y, label="二次函数")
plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize=12, fontweight='bold') # 设置图例字体的大小和粗细
plt.grid(linestyle="--") # 设置背景网格线为虚线
加上这一段之后,得到的效果图如下所示:
如果嫌弃字太大,自行设置即可。
(5)去掉上边框
如果不想要上边框和有边框,加上如下代码:
ax = plt.gca()
ax.spines['top'].set_visible(False) # 去掉上边框
ax.spines['right'].set_visible(False) # 去掉右边框
效果如下所示:
是不是有SCI论文里边那种感觉了。