matplotlib 对坐标的控制,加图例注释的操作

作者:akon_wang_hkbu 时间:2021-06-12 16:28:46 

我们可以使用matplotlib.pyplot.locator_params()来控制刻度线 * 的行为。 即使通常会自动确定标记点的位置,但是如果我们想要绘制较小的标记,则可以控制标记点的数量并使用紧密的视图:


from pylab import *
import numpy as np

ax = gca()
ax.locator_params(tight = True, nbins = 10)
ax.plot(np.random.normal(10, 0.1, 100))
show()

这应该给我们下面的图表:

matplotlib 对坐标的控制,加图例注释的操作

然后我们可以使用matplotlib.dates.date2num(),matplotlib等助手函数。 dates.num2date()和matplotlib.dates.drange()在不同的表示之间转换日期。

我们来看另一个例子:


from pylab import *
import matplotlib as mpl
import datetime

fig = figure()
ax = gca()
start = datetime.datetime(2013, 1, 1)
stop = datetime.datetime(2013, 12, 31)
delta = datetime.timedelta(days = 1)
dates = mpl.dates.drange(start, stop, delta)
values = np.random.rand(len(dates))

ax = gca()
ax.plot_date(dates, values, linestyle= '-', marker='')
date_format = mpl.dates.DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(date_format)
fig.autofmt_xdate()
show()

上面的代码会给我们下面的图表:

matplotlib 对坐标的控制,加图例注释的操作

添加图例和注释

图例和注释清楚地解释数据图。 通过给每个图表分配一个关于它所代表的数据的简短描述,我们在阅读者(观众)头脑中启用一个更简单的心智模型。 这个方法将显示如何注释我们的数字上的特定点,以及如何创建和定位数据图例。

让我们来演示如何添加图例和注释:


if __name__ == '__main__':
x1 = np.random.normal(30, 3, 100)
x2 = np.random.normal(20, 2, 100)
x3 = np.random.normal(10, 3, 100)

plt.plot(x1, label = 'plot')
plt.plot(x2, label = '2nd plot')
plt.plot(x3, label = 'last plot')

plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
   ncol=3, mode='expand', borderaxespad=0.)
plt.annotate('Important value', (55,20),
    xycoords='data',
    xytext=(5,38),
    arrowprops = dict(arrowstyle = '->'))

plt.show()

上面的代码会给我们下面的图:

matplotlib 对坐标的控制,加图例注释的操作

我们所做的就是为每个绘图分配一个字符串标签,因此legend()将尝试确定要在图例框中添加的内容。 我们通过定义loc参数来设置图例框的位置。 这是可选的,但是我们想要指定一个位置,这个位置最不可能用于绘制图例的图例。 将位置值设置为0是非常有用的,因为它会自动检测图形的位置,图例的位置可以与图形重叠最小。

所有位置参数字符串在下表中给出:

matplotlib 对坐标的控制,加图例注释的操作

如果不在图例中显示标签,请将标签设置为_nolegend_。

对于图例,我们定义了ncol = 3的列数,并设置了左下角的位置。 我们指定了一个边界框(bbox_to_anchor),从位置(0.,1.02)开始,宽度为1,高度为0.102。 这些是标准化的坐标轴。 参数模式为“None”或“expand”以允许图例框水平放大轴区域。 参数borderaxespad定义轴和图例边界之间的填充。

对于注释,我们已经定义了一个字符串在坐标xy上的图上绘制。 坐标系指定与数据1相同; 因此,坐标系是xycoord ='data'。 文本的起始位置由xytext的值定义。

箭头从xytext绘制到xy坐标,arrowprops字典可以定义该箭头的许多属性。 对于这个例子,我们用箭头来定义箭头样式。

来源:https://blog.csdn.net/akon_wang_hkbu/article/details/78845752

标签:matplotlib,坐标,注释
0
投稿

猜你喜欢

  • Python中实现单例模式的n种方式和原理

    2021-01-07 20:45:58
  • pytorch + visdom 处理简单分类问题的示例

    2022-08-17 12:56:58
  • Python基于BeautifulSoup爬取京东商品信息

    2021-03-15 21:52:53
  • 后工业时代的后规范思考2——如何应用

    2009-06-05 12:35:00
  • Effective Python bytes 与 str 的区别

    2021-07-11 16:52:13
  • ASP读取ini文件

    2010-01-20 11:17:00
  • java代码获取数据库表里数据的总数操作

    2024-01-14 23:41:31
  • python线性插值解析

    2021-07-01 21:31:17
  • Python中函数及默认参数的定义与调用操作实例分析

    2022-01-15 05:16:31
  • Golang加权轮询负载均衡的实现

    2024-02-01 04:41:57
  • python使用chardet判断字符串编码的方法

    2023-02-02 06:45:20
  • python条件语句和while循环语句

    2023-08-31 06:17:56
  • 解析如何加快mysql编译的速度

    2024-01-15 07:26:55
  • 解决python3中cv2读取中文路径的问题

    2023-05-17 18:52:10
  • Golang中omitempty关键字的具体实现

    2024-04-25 15:12:55
  • Django 日志配置按日期滚动的方法

    2021-02-02 08:27:01
  • 整理Python中常用的conda命令操作

    2022-07-17 16:53:33
  • IE6局部调用PNG32合并图片

    2009-03-11 21:24:00
  • Python实现钉钉订阅消息功能

    2023-02-23 05:25:08
  • php实现断点续传大文件示例代码

    2024-04-28 09:45:17
  • asp之家 网络编程 m.aspxhome.com