add_subplot(add_subplot)

http://www.itjxue.com  2023-01-27 02:59  来源:未知  点击次数: 

python用matplotlib绘图时,曲线或散点怎么删除?

在matplotlib中,每一个对象(图标,轴等)都提供了各种方法来获取其属性或者之类对象。\x0d\x0a如,最大的Artist容器是matplotlib.figure.Figure,它包括组成图表的所有元素。图表的背景是一个Rectangle对象,用Figure.patch属性表示。当你通过调用add_subplot或者add_axes方法往图表中添加轴(子图时),这些子图都将添加到Figure.axes属性中,同时这两个方法也返回添加进axes属性的对象,注意返回值的类型有所不同,实际上AxesSubplot是Axes的子类。\x0d\x0a\x0d\x0afig = plt.figure()\x0d\x0aax = fig.add_subplot(1,1,1)\x0d\x0a然后我们添加一条“Line”到这个“axes”中去\x0d\x0alines = ax.plot(np.arange(1000))\x0d\x0a\x0d\x0a此时,你可以运行fig.show()查看到图表对象中已经多了一条线\x0d\x0a\x0d\x0a当然,你也可以吧lines对象的位置打印出来,我这里是:\x0d\x0a[]\x0d\x0a\x0d\x0aOK,可能这个时候你已经知道如何做了,通过查询API我们知道是有一个POP方法的,那么你可能会这么写:\x0d\x0alines.pop(0)\x0d\x0a然后你会再次运行程序,你会发现画的先仍然存在,为什么呢?\x0d\x0a好吧,其实这个地方你可以理解为是一个值传递,而非引用删除,那么正确的方法是:\x0d\x0aax.lines.pop(0)\x0d\x0a\x0d\x0a你同样可以这样,传递一个地址过去\x0d\x0aax.lines.remove(lines[0])\x0d\x0a\x0d\x0a你大概可能通过这些方法进行删除\x0d\x0alines.pop(0) \x0d\x0alines.remove()\x0d\x0adel lines\x0d\x0a\x0d\x0a回答完毕。

python绘图篇

1,xlable,ylable设置x,y轴的标题文字。

2,title设置标题。

3,xlim,ylim设置x,y轴显示范围。

plt.show()显示绘图窗口,通常情况下,show()会阻碍程序运行,带-wthread等参数的环境下,窗口不会关闭。

plt.saveFig()保存图像。

面向对象绘图

1,当前图表和子图可以用gcf(),gca()获得。

subplot()绘制包含多个图表的子图。

configure subplots,可调节子图与图表边框距离。

可以通过修改配置文件更改对象属性。

图标显示中文

1,在程序中直接指定字体。

2, 在程序开始修改配置字典reParams.

3,修改配置文件。

Artist对象

1,图标的绘制领域。

2,如何在FigureCanvas对象上绘图。

3,如何使用Renderer在FigureCanvas对象上绘图。

FigureCanvas和Render处理底层图像操作,Artist处理高层结构。

分为简单对象和容器对象,简单的Aritist是标准的绘图元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器类型包含许多简单的的 Aritist对象,使他们构成一个整体,例如Axis,Axes,Figure等。

直接创建Artist对象进项绘图操作步奏:

1,创建Figure对象(通过figure()函数,会进行许多初始化操作,不建议直接创建。)

2,为Figure对象创建一个或多个Axes对象。

3,调用Axes对象的方法创建各类简单的Artist对象。

Figure容器

如何找到指定的Artist对象。

1,可调用add_subplot()和add_axes()方法向图表添加子图。

2,可使用for循环添加栅格。

3,可通过transform修改坐标原点。

Axes容器

1,patch修改背景。

2,包含坐标轴,坐标网格,刻度标签,坐标轴标题等内容。

3,get_ticklabels(),,get-ticklines获得刻度标签和刻度线。

1,可对曲线进行插值。

2,fill_between()绘制交点。

3,坐标变换。

4,绘制阴影。

5,添加注释。

1,绘制直方图的函数是

2,箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位

数、中位数、第三四分位数与最大值来描述数据的一种方法,它可以粗略地看出数据是否具有对称性以及分

布的分散程度等信息,特别可以用于对几个样本的比较。

3,饼图就是把一个圆盘按所需表达变量的观察数划分为若干份,每一份的角度(即面积)等价于每个观察

值的大小。

4,散点图

5,QQ图

低层绘图函数

类似于barplot(),dotchart()和plot()这样的函数采用低层的绘图函数来画线和点,来表达它们在页面上放置的位置以及其他各种特征。

在这一节中,我们会描述一些低层的绘图函数,用户也可以调用这些函数用于绘图。首先我们先讲一下R怎么描述一个页面;然后我们讲怎么在页面上添加点,线和文字;最后讲一下怎么修改一些基本的图形。

绘图区域与边界

R在绘图时,将显示区域划分为几个部分。绘制区域显示了根据数据描绘出来的图像,在此区域内R根据数据选择一个坐标系,通过显示出来的坐标轴可以看到R使用的坐标系。在绘制区域之外是边沿区,从底部开始按顺时针方向分别用数字1到4表示。文字和标签通常显示在边沿区域内,按照从内到外的行数先后显示。

添加对象

在绘制的图像上还可以继续添加若干对象,下面是几个有用的函数,以及对其功能的说明。

?points(x, y, ...),添加点

?lines(x, y, ...),添加线段

?text(x, y, labels, ...),添加文字

?abline(a, b, ...),添加直线y=a+bx

?abline(h=y, ...),添加水平线

?abline(v=x, ...),添加垂直线

?polygon(x, y, ...),添加一个闭合的多边形

?segments(x0, y0, x1, y1, ...),画线段

?arrows(x0, y0, x1, y1, ...),画箭头

?symbols(x, y, ...),添加各种符号

?legend(x, y, legend, ...),添加图列说明

2020-05-03 matplotlib.pyplot数据画图--双坐标

1、双坐标图

# -*- coding: UTF-8 -*-

import matplotlib.pyplot as plt

year = [2001,2002,2003,2004,2005]

num = [1000,800,1200,3400,1200]

s = []

for i in range(5):

????if i ==0:

????????s.append(1.0)

????????continue

? ? t =round((num[i]-num[i-1])/num[i-1],2)

? ? s.append(t)

print(year,num,s)

#设置图形大小

fig = plt.figure(figsize=(8,6))

#左侧柱状图

p1 = fig.add_subplot(1,1,1)? ?#行,列,第几个

p1.bar(year,num,label='left map')

p1.legend(loc='upper left')

p1.set_xlabel('year')

p1.set_ylabel('num')

#右侧折线图

p2 = p1.twinx()

p2.plot(year,s,color='red',label='right map')

p2.legend(loc='upper right')

p2.set_ylabel('rate')

p2.set_ylim(-1,2)

#标题

plt.title("double map")

#显示图像

plt.show()

2、上下两幅图

# -*- coding: UTF-8 -*-

import matplotlib.pyplotas plt

year = [2001,2002,2003,2004,2005]

num = [1000,800,1200,3400,1200]

s = []

for iin range(5):

if i ==0:

s.append(1.0)

continue

? ? t =round((num[i]-num[i-1])/num[i-1],2)

s.append(t)

print(year,num,s)

#设置图形大小

fig = plt.figure(figsize=(8,6))

#左侧柱状图

p1 = fig.add_subplot(2,1,1)

p1.bar(year,num,label='left map')

p1.legend(loc='upper left')

p1.set_xlabel('year')

p1.set_ylabel('num')

p1.set_title("first map")

#右侧折线图

p2 = fig.add_subplot(2,1,2)

p2.plot(year,s,color='red',label='right map')

p2.legend(loc='upper right')

p2.set_ylabel('rate')

p2.set_ylim(-1,2)

p2.set_title("second map")

#自动设置间距

plt.tight_layout()

#显示图像

plt.show()

3、左右两幅图

# -*- coding: UTF-8 -*-

import matplotlib.pyplotas plt

year = [2001,2002,2003,2004,2005]

num = [1000,800,1200,3400,1200]

s = []

for iin range(5):

if i ==0:

s.append(1.0)

continue

? ? t =round((num[i]-num[i-1])/num[i-1],2)

s.append(t)

print(year,num,s)

#设置图形大小

fig = plt.figure(figsize=(8,6))

#左侧柱状图

p1 = fig.add_subplot(1,2,1)

p1.bar(year,num,label='left map')

p1.legend(loc='upper left')

p1.set_xlabel('year')

p1.set_ylabel('num')

p1.set_title("first map")

#右侧折线图

p2 = fig.add_subplot(1,2,2)

p2.plot(year,s,color='red',label='right map')

p2.legend(loc='upper right')

p2.set_ylabel('rate')

p2.set_ylim(-1,2)

p2.set_title("second map")

#自动设置间距

plt.tight_layout()

#显示图像

plt.show()

(责任编辑:IT教学网)

更多

相关微信营销文章

推荐微信营销文章