python绘图篇

Python018

python绘图篇,第1张

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, ...),添加图列说明

pre{overflow-x: auto}

技巧1: plt.subplots()

技巧2: plt.subplot()

技巧3: plt.tight_layout()

技巧4: plt.suptitle()

数据集:

让我们导入包并更新图表的默认设置,为图表添加一点个人风格。 我们将在提示上使用 Seaborn 的内置数据集:

import seaborn as sns # v0.11.2   import matplotlib.pyplot as plt # v3.4.2   sns.set(style='darkgrid', context='talk', palette='rainbow')df = sns.load\_dataset('tips')   df.head()

技巧1: plt.subplots()

绘制多个子图的一种简单方法是使用 plt.subplots() 。

这是绘制 2 个并排子图的示例语法:

fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10,4))   sns.histplot(data=df, x='tip', ax=ax[0])   sns.boxplot(data=df, x='tip', ax=ax[1])

在这里,我们在一个图中绘制了两个子图。 我们可以进一步自定义每个子图。

  例如,我们可以像这样为每个子图添加标题:

fig, ax = plt.subplots(1, 2, figsize=(10,4))   sns.histplot(data=df, x='tip', ax=ax[0])   ax[0].set\_title("Histogram")   sns.boxplot(data=df, x='tip', ax=ax[1])   ax[1].set\_title("Boxplot")

在循环中将所有数值变量用同一组图表示:

numerical = df.select\_dtypes('number').columnsfor col in numerical:    fig, ax = plt.subplots(1, 2, figsize=(10,4))    sns.histplot(data=df, x=col, ax=ax[0])    sns.boxplot(data=df, x=col, ax=ax[1]) 技巧2: plt.subplot()

另一种可视化多个图形的方法是使用 plt.subplot(), 末尾没有 s

  语法与之前略有不同:

plt.figure(figsize=(10,4))   ax1 = plt.subplot(1,2,1)   sns.histplot(data=df, x='tip', ax=ax1)   ax2 = plt.subplot(1,2,2)   sns.boxplot(data=df, x='tip', ax=ax2)

当我们想为多个图绘制相同类型的图形并在单个图中查看所有图形,该方法特别有用:

plt.figure(figsize=(14,4))   for i, col in enumerate(numerical):    ax = plt.subplot(1, len(numerical), i+1)    sns.boxplot(data=df, x=col, ax=ax)

我们同样能定制子图形。例如加个 title

plt.figure(figsize=(14,4))   for i, col in enumerate(numerical):    ax = plt.subplot(1, len(numerical), i+1)    sns.boxplot(data=df, x=col, ax=ax)     ax.set\_title(f"Boxplot of {col}")

通过下面的比较,我们能更好的理解它们的相似处与不同处熟悉这两种方法很有用,因为它们可以在不同情况下派上用场。

技巧3: plt.tight_layout()

在绘制多个图形时,经常会看到一些子图的标签在它们的相邻子图上重叠,

如下所示:

categorical = df.select\_dtypes('category').columnsplt.figure(figsize=(8, 8))   for i, col in enumerate(categorical):    ax = plt.subplot(2, 2, i+1)    sns.countplot(data=df, x=col, ax=ax)

顶部两个图表的 x 轴上的变量名称被剪掉,右侧图的 y 轴标签与左侧子图重叠.使用 plt.tight_layout 很方便

plt.figure(figsize=(8, 8))   for i, col in enumerate(categorical):    ax = plt.subplot(2, 2, i+1)    sns.countplot(data=df, x=col, ax=ax)    plt.tight\_layout()

专业 看起来更好了。

技巧4: plt.suptitle()

真个图形添加标题:

plt.figure(figsize=(8, 8))   for i, col in enumerate(categorical):    ax = plt.subplot(2, 2, i+1)    sns.countplot(data=df, x=col, ax=ax)    plt.suptitle('Category counts for all categorical variables')   plt.tight\_layout()

此外,您可以根据自己的喜好自定义各个图。 例如,您仍然可以为每个子图添加标题。

到此这篇关于python绘图 四个绘图技巧的文章就介绍到这了,希望大家以后多多支持!

Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。

设置画布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。

如:turtle.screensize(800,600, "green")

turtle.screensize() #返回默认大小(400, 300)

turtle.setup(width=0.5, height=0.75, startx=None, starty=None),参数:width, height: 输入宽和高为整数时, 表示像素为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。

如:turtle.setup(width=0.6,height=0.6)

turtle.setup(width=800,height=800, startx=100, starty=100)

2.1 画笔的状态

在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。

2.2 画笔的属性

画笔(画笔的属性,颜色、画线的宽度等)

1) turtle.pensize():设置画笔的宽度;

2) turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。

3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

2.3 绘图命令

操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。

(1) 画笔运动命令

(2) 画笔控制命令

(3) 全局控制命令

(4) 其他命令

3. 命令详解

3.1 turtle.circle(radius, extent=None, steps=None)

描述:以给定半径画圆

参数:

radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;

extent(弧度) (optional);

steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)。

举例:

circle(50) # 整圆

circle(50,steps=3) # 三角形

circle(120, 180) # 半圆

实例:

1、太阳花

2、五角星

3、时钟程序