matplot画图控制marker点的个数_python画图(图例、网格、注释) - v2

f24f6ba67ee744c264b6e993c54d5e7a.png

每件事情总有两面性,当我们看到不太好的一面时,一定要想着去寻找一下好的一面。就比如,原本计划好的五一行程被打乱之后,我脑子里便诞生了一个“伟大”的想法,立马买好了乳胶漆打算利用闲暇的假期时间,将房间粉刷一遍,现在开心的心情远远大过于被打乱安排后的苦恼,甚至想立马动手实施我的这一想法hhhhh,就连此刻的学习都很是开心^_^


一、 图像的标题和图例

代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-1, 1, 0.1)

y1 = np.exp(x)
y2 = np.exp(2 * x)

plt.plot(x, y1, color="r", linestyle="-", marker="^", linewidth=1, label="y1")
plt.plot(x, y2, color="b", linestyle="-", marker="s", linewidth=1, label="y2")
 
#设置图例
plt.legend(loc='upper left', bbox_to_anchor=(0.2, 0.95))
 
#设置图像的标题
plt.title("Figure 1")

plt.show()

运行效果如下:

cf7db0a804d96c118a8b6ac059478068.png

修改图例-1:

plt.legend(loc='upper left', bbox_to_anchor=(-0.2, 1.0))

呈现效果如下:

471c7d8849c730eb7f8a1b9dec6fc4ba.png

修改图例-2:

plt.legend(loc='upper left', bbox_to_anchor=(0, 1.0))

运行效果如下:

bae2e3dbdd30ba77c7031bd69149aab2.png

小小地分析一下:

1. 从代码中,可以知道plt.legend()是用来设置图例的,这个函数的第一个参数用来设定一个大概的位置,“upper left“表示在左上角;这第二个参数呢,就是用来细化位置的,bbox_to_anchor(x1, x2)中,x1的数值越大,图例越往右走,x2的数值越大,图例则越往上方走。

2. 如果不设置”label”标签,则图例不会在绘图结果中呈现。

二、网格,背景色以及文字注释

1. 网格:

代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-1, 1, 0.1)

y = [2 * i for i in x]

plt.plot(x, y, color="r", linestyle="-", marker="^", linewidth=1)


plt.grid(color="k", linestyle=":")
# plt.grid(color="k", linestyle=":",axis='x')
# plt.grid(color="k", linestyle=":", axis='y')
plt.show()

运行效果如下:

5432667da09f7f7d76eedd08f86a680a.png

修改网格-1:

plt.grid(color="k", linestyle=":",axis='x')

运行效果如下:

4f9d014575a158560cfcc05ba1433723.png

修改网格-2:

plt.grid(color="k", linestyle=":",axis='y')

运行效果如下:

270f2d72c1ca482f930f72d53d3d61f9.png

小分析:

(1) 用函数grid()添加网格,函数中我们可以定义网格的样式,比如线条颜色,类型,粗细等等;

(2) 函数grid()中axis参数的设置,可以通过设定为x、y、both(默认的),让网格做不同的呈现。

2. 背景色:

代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-1, 1, 0.1)
y1 = np.exp(x)
y2 = np.exp(2 * x)

plt.subplot(facecolor="g")

plt.plot(x, y1, color="r", linestyle="-", marker="^")
plt.plot(x, y2, color="b", linestyle="-", marker="s")

plt.grid(color="k", linestyle=":")
plt.show()

运行效果如下:

d2f00b61e2c720a9bf3480ce9f9b9760.png

这个点我还没发现什么可使用的价值,抄别人的分析吧hh

通过向plt.subplot()函数传递参数facecolor设置图像的背景色。需要注意的是背景色的设置代码应该在绘制曲线之前,否则相当于给整张图上色,覆盖了要展示的曲线。

======================================================

plt.text(), plt.annotate()是两种向图像添加文本注释的方法。

3. 文字注释-plt.text():

代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-1, 1, 0.1)

y1 = np.exp(x)
y2 = np.exp(2 * x)

plt.plot(x, y1, color="r", linestyle="-", marker="^", linewidth=1)
plt.plot(x, y2, color="b", linestyle="-", marker="s", linewidth=1)

plt.text(-0.5, 3, "exp functions", fontsize=10)

plt.show()

运行效果如下:

841cf6383d40beb4358bec6bfc04c1fb.png

小分析:

plt.text()可以在图像任意位置添加文字。

plt.text()中前两个参数表示添加文字的坐标位置,第3个参数是要添加的文本。

4. 文字注释-plt.annotate():

代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-1, 1, 0.1)

y1 = np.exp(x)
y2 = np.exp(2 * x)

plt.plot(x, y1, color="r", linestyle="-", marker="^", linewidth=1)
plt.plot(x, y2, color="b", linestyle="-", marker="s", linewidth=1)

# plt.text(-0.5, 3, "exp functions", fontsize=10)
plt.annotate('A', xy=(0, 1), xytext=(-0.5, 2.5), arrowprops=dict(facecolor='k', headwidth=10, width=2))

plt.show()

运行效果如下:

9228f1c542ac5e0f5ce5331dfee597c5.png

小分析:

(1)plt.annotate()则可以帮助我们形象地为曲线中的某一个点添加注释。

(2)对于plt.annotate()中的参数分别解释一下,第一个参数’A’是注释文本,xy表示要注释的点的坐标,xytext表示注释文本的起始坐标,arrowprops表示箭头,我们可以通过一个字典形的变量,设置其样式,包括颜色,宽度等等(headwidth表示箭头宽度,width表示箭身的宽度)。

参考链接:https://blog.csdn.net/guoziqing506/article/details/78975150

PS:至此,该参考链接中的内容,我就已经学习完成了,感谢作者在网络上的分享。

对于学术研究来说,当前的绘图知识,远不能支撑一个很好的研究成果的呈现,因此,对python画图的学习,还要继续深入探索和学习~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我可以给您提供一些Python Matplotlib画图中设置字体、字体大小、刻度密度、线条样式等的方法。 1. 设置字体和字体大小: 可以使用`rcParams`来设置全局字体和字体大小,也可以在特定的对象上进行设置。例如: ```python import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'Times New Roman' plt.rcParams['font.size'] = 16 # 或者使用下面的方式进行设置: fig, ax = plt.subplots() ax.set_xlabel('X Label', fontsize=16, fontfamily='Times New Roman') ax.set_ylabel('Y Label', fontsize=16, fontfamily='Times New Roman') ``` 2. 设置刻度密度: `xticks`和`yticks`可以设置刻度的位置,`xticklabels`和`yticklabels`可以设置刻度标签的内容,`tick_params`可以设置刻度的样式,例如: ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 100) y = np.sin(x) fig, ax = plt.subplots() ax.plot(x, y) ax.set_xticks([0, 2, 4, 6, 8, 10]) ax.set_xticklabels(['0', '2', '4', '6', '8', '10'], fontsize=12) ax.set_yticks([-1, 0, 1]) ax.set_yticklabels(['-1', '0', '1'], fontsize=12) ax.tick_params(axis='both', which='major', length=10, width=2, labelsize=12) ax.tick_params(axis='both', which='minor', length=5, width=1, labelsize=10) ``` 3. 设置线条样式: 可以使用`plot`函数中的`linestyle`参数来设置线条样式,例如: ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) fig, ax = plt.subplots() ax.plot(x, y1, linestyle='-', linewidth=2, label='sin(x)') ax.plot(x, y2, linestyle='--', linewidth=2, label='cos(x)') ax.legend(loc='upper right', fontsize=12) ``` 以上是一些基本的设置方法,您可以根据具体需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值