python使用Matplotlib绘图及设置实例(用python制图)

目录
  • 一、初识matplotlib.pyplot
    • 1.绘制图像
    • 2.设置图片大小
    • 3.保存图片文件
    • 4.设置X,Y轴刻度范围
    • 5.添加描述信息(标题、轴标签)
    • 6.设置显示中文(导入字体模块)
    • 7.绘制网格
  • 二、常见绘图属性设置
    • 1.绘图符号(Makers)
    • 2.线型(Line Styles)
    • 3.颜色缩写(Colors)
    • 4.Windows字体中英文名称对照
    • 面向对象方式绘图
    • 配置对象的属性
    • 绘制多个子图
  • 三、Artist对象
    • Artist对象进行绘图的流程
    • 设置Artist属性
    • 一些例子
    • Figure容器
    • Axes容器
    • 坐标轴刻度设置
  • 总结

# matplotlib提供快速绘图模块pyplot,它模仿了MATLAB的部分功能

import matplotlib.pyplot as plt        #导入绘图模块

from matplotlib import pyplot as plt           #两种导入方法都可

第一节内容的精简版总结:

  1. 绘制折线图(plt.plot)
  2. 设置图片大小和分辨率(plt.figure)
  3. 保存图片到本地(plt.savefig)
  4. 设置xy轴刻度和字符串(xticks、yticks)
  5. 设置标题、xy轴标签(title、xlable、ylable)
  6. 设置字体(font_manager.fontProperties,matplotlib.rc)
  7. 同一张图绘制多线条(plt多次plot)
  8. 添加图例、绘制网格
  9. 其他图像类型(散点图plt.scatter,条形图plt.bar,横向plt.barh,直方图plt.hist(bin.width组距、num_bins分多少组、))

一、初识matplotlib.pyplot

准备好制图数据,传入参数。即可使用plt.plot(参数)、plt.show()一键出图!

import matplotlib.pyplot as plt
x = [......]
y = [......]
plt.plot(x,y,label='图例')        #绘图,并且标注图例
plt.show()        #显示
plot.legend(prop=my_font)        #设置显示图例,括号中意思为显示中文(后面讲解)

1.绘制图像

plt.plot() 参数设置:

  • color=’ ‘        线条颜色
  • linestyle=’‘        线条风格
  • linewidth=        线条粗细
  • alpha=0.5        透明度        (对照表见常见绘图属性设置附表)

一个实例:假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15]

import matplotlib.pyplot as plt

x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

# 绘图
plt.plot(x,y)
# 显示
plt.show()

绘制出如下图片:

2.设置图片大小

在绘制图片之前,使用plt.figure函数设置图片大小,其中figsize为元组,分别代表长宽,dpi(Dot Per Inch)为分辨率表示的单位之一。

plt.figure(figsize=(20,8),dpi=150)        #图片大小为20*8,每英寸150个像素点

3.保存图片文件

plt.savefig("./t1.png")        #将图片保存到本地

引号里为文件路径和文件名( ./ 代表当前路径,png为文件后缀/格式)

4.设置X,Y轴刻度范围

设置x,y轴的范围可以使用多种方法

plt.xticks(x)        # 将x里的值作为刻度
plt.xticks(range(2,25))        #传入range数列
plt.yticks(range(min(y),max(y)+1))        #传入最小到最大值数列
_xticks_lables = [i/2 for i in range(4,49)]                # 生成更复杂的数列
plt.xticks(_xticks_lables[::3])        #取步长作为刻度

自定义刻度内容

_x =list(x) [::3]
_xticks_labels = ["10点{ }分".format(i) for i in _x]
plt.xticks(_x,_xticks_labels)        #分别代表刻度范围和刻度内容

5.添加描述信息(标题、轴标签)

plt.title("折线图")    #设置标题
plt.xlabel("时间")    #设置x轴标注
plt.ylabel("气温")    #设置y轴标注

6.设置显示中文(导入字体模块)

from matplotlib import font_manager        #导入字体管理模块
my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/STSONG.TTF")
#定义中文字体属性,文字储存路径可以在C:/WINDOWS/Fonts/找到,这里设置为宋体
plt.xlabel("时间",fontproperties = my_font,fontsize = 18)
#在设置x坐标中文标注,令fontproperties = my_font,fontsize令字体为18号
#plt.title,plt.ylabel,plt.xticks,plt.yticks设置中文标注类似

7.绘制网格

plt.grid(alpha=0.4)

绘制一个温度随时间变化的折线图实例

import matplotlib.pyplot as plt
import random    #导入随机生成模块
from matplotlib import font_manager#导入字体管理模块
my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/STSONG.TTF")
#定义中文字体属性,文字储存路径可以在C:/WINDOWS/Fonts/找到,本次设置为宋体

x = range(0,120)    #x值为0-120
y = [random.randint(20,35) for i in range(120)]     #y值为120个在20-35之间的随机数

plt.figure(figsize=(15,10),dpi = 80)    #图片大小为15*10,每英寸80个像素点

'''调整x轴刻度'''
_xticks_labels = ["10点{}分".format(i) for i in range(60)]
_xticks_labels += ["11点{}分".format(i) for i in range(60,120)]
plt.xticks(list(x)[::5],_xticks_labels[::5],rotation=45)    #rotation旋转度数
#取步长5,数字和字符串一一对应,保证数据的长度一样

'''设置标注'''
plt.title("10点到12点每分钟温度变化图",fontproperties = my_font,fontsize = 24)    #设置标题
plt.xlabel("时间",fontproperties = my_font,fontsize = 18)    #设置x坐标标注,字体为18号
plt.ylabel("每分钟对应的温度",fontproperties = my_font,fontsize = 18)    #设置y坐标标注

plt.plot(x,y)   #绘图
plt.show()  #显示

二、常见绘图属性设置

1.绘图符号(Makers)


符号


中文说明


英文说明


'.'


圆点


point marker


','


像素点


pixel marker


'o'


圆圈


circle marker


'v'


向下三角形


triangle_down marker


'^'


向上三角形


triangle_up marker


'<'


向左三角形


triangle_left marker


'>'


向右三角形


triangle_right marker


'1'


向下Y形


tri_down marker


'2'


向上Y形


tri_up marker


'3'


向左Y形


tri_left marker


'4'


向右Y形


tri_right marker


's'


方形


square marker


'p'


五边形


pentagon marker


'*'


星形


star marker


'h'


六角形1


hexagon1 marker


'H'


六角形2


hexagon2 marker


'+'


加号


plus marker


'x'


叉号


x marker


'D'


钻石形


diamond marker


'd'


钻石形(小)


thin_diamond marker


'|'


竖线


vline marker


'_'


横线


hline marker

2.线型(Line Styles)


符号


中文说明


英文说明


'-'


实线


solid line style


'--'


虚线


dashed line style


'-.'


点划线


dash-dot line style


':'


点线


dotted line style

3.颜色缩写(Colors)

多种丰富的颜色对照代码参见:RGB颜色值与十六进制颜色码转换工具 (sioe.cn)


符号


中文说明


英文说明


'b'



blue


'g'


绿


green


'r'



red


'c'



cyan


'm'



magenta


'y'



yellow


'k'



black


'w'



white

4.Windows字体中英文名称对照


中文名称


英文名称


黑体


SimHei


微软雅黑


Microsoft YaHei


微软正黑体


Microsoft JhengHei


新宋体


NSimSun


新细明体


PMingLiU


细明体


MingLiU


标楷体


DFKai-SB


仿宋


FangSong


楷体


KaiTi


仿宋_GB2312


FangSong_GB2312


楷体_GB2312


KaiTi_GB2312

面向对象方式绘图

  • matplotlib是一套面向对象的绘图库,图中的所有部件都是python对象。
  • pyplot是matplotlib仿照MATLAB提供的一套快速绘图API,它并不是matplotlib本体。
  • pyplot虽然用起来简单快捷,但它隐藏了大量的细节,不能使用一些高级功能。
  • pyplot模块内部保存了当前图表和当前子图等信息,可以分别用gcf()和gca()获得这两个对象:
    • plt.gcf(): "Get current figure"获取当前图表(Figure对象)
    • plt.gca(): "Get current figure"获取当前子图(Axes对象)
  • pyplot中的各种绘图函数,实际上是在内部调用gca获取当前Axes对象,然后调用Axes的方法完成绘图的。
import matplotlib.pyplot as plt
# 获取当前的Figure和Axes对象
plt.figure(figsize=(4,3))
fig = plt.gcf()
axes = plt.gca()
print(fig)
print(axes)

配置对象的属性

matplotlib所绘制的图表的每一部分都对应一个对象,有两种方式设置这些对象的属性:

通过对象的set_*()方法设置。

通过pyplot的setp()方法设置。

同样也有两种方法查看对象的属性:

通过对象的get_*()方法查看。

通过pyplot的getp()方法查看。

import matplotlib.pyplot as plt
import numpy as np
# 获取当前的Figure和Axes对象
plt.figure(figsize=(4,3))
fig = plt.gcf() ; axes = plt.gca()
print(fig); print(axes)
x = np.arange(0, 5, 0.1)
# 调用plt.plot函数,返回一个Line2D对象列表
lines = plt.plot(x, 0.05*x*x); print(lines)
# 调用Line2D对象的set系列方法设置属性值
# 用set_alpha设置alpha通道,也就是透明度
lines[0].set_alpha(0.5) ; plt.show()
# plt.plot函数可以接受不定个数的位置参数,这些位置参数两两配对,生成多条曲线。
lines = plt.plot(x, np.sin(x), x, np.cos(x), x, np.tanh(x))
plt.show()
# 使用plt.setp函数同时配置多个对象的属性,这里设置lines列表中所有曲线的颜色和线宽。
plt.setp(lines, color='r', linewidth=4.0);plt.show()
# 使用getp方法查看所有的属性
f = plt.gcf(); plt.getp(f)

import numpy as np
import matplotlib.pyplot as plt
# 获取当前的Figure和Axes对象
plt.figure(figsize=(4,3))
fig = plt.gcf() ; axes = plt.gca()
print(fig); print(axes)
x = np.arange(0, 5, 0.1)
# 调用plt.plot函数,返回一个Line2D对象列表
lines = plt.plot(x, 0.05*x*x); print(lines)
# 调用Line2D对象的set系列方法设置属性值
# 用set_alpha设置alpha通道,也就是透明度
lines[0].set_alpha(0.5) ; plt.show()
# plt.plot函数可以接受不定个数的位置参数,这些位置参数两两配对,生成多条曲线。
lines = plt.plot(x, np.sin(x), x, np.cos(x), x, np.tanh(x))
plt.show()
# 使用plt.setp函数同时配置多个对象的属性,这里设置lines列表中所有曲线的颜色和线宽。
plt.setp(lines, color='r', linewidth=4.0);plt.show()
# 使用getp方法查看所有的属性
f = plt.gcf(); plt.getp(f)
# 查看某个属性
print(plt.getp(lines[0],"color"))
# 使用对象的get_*()方法
print(lines[0].get_linewidth())
# Figure对象的axes属性是一个列表,存储该Figure中的所有Axes对象。
# 下面代码查看当前Figure的axes属性,也就是gca获得的当前Axes对象。
print(plt.getp(f, 'axes'))
print(len(plt.getp(f, 'axes')))
print(plt.getp(f, 'axes')[0] is plt.gca())
# 用plt.getp()可以继续获取AxesSubplot对象的属性,例如它的lines属性为子图中的Line2D对象列表。
# 通过这种方法可以查看对象的属性值,以及各个对象之间的关系。
all_lines = plt.getp(plt.gca(), "lines");print(all_lines)
plt.close() # 关闭当前图表

绘制多个子图

在matplotlib中,一个Figure对象可以包括多个Axes对象(也就是子图),一个Axes代表一个绘图区域。最简单的多子图绘制方式是使用pyplot的subplot函数。

subplot(numRows, numCols, plotNum)接受三个参数:

numRows:子图行数

numCols:子图列数

plotNum:第几个子图(按从左到右,从上到下的顺序编号)

import matplotlib.pyplot as plt
# 创建3行2列,共计6个子图。
# subplot(323)等价于subplot(3,2,3)。
# 子图的编号是从1开始,不是从0开始。
fig = plt.figure(figsize=(4,3))
for idx,color in enumerate('rgbcyk'):
    plt.subplot(321+idx, facecolor=color)
plt.show()
# 如果新创建的子图和之前创建的有重叠区域,则之前的子图会被删除
plt.subplot(221)
plt.show()
plt.close()
# 还可以用多个高度或宽度不同的子图相互拼接
fig = plt.figure(figsize=(4,3))
plt.subplot(221) # 第一行左图
plt.subplot(222) # 第一行右图
plt.subplot(212) # 第二行整行
plt.show()
plt.close()

三、Artist对象

简单类型Artist对象是标准的绘图元件,例如Line2D,Rectangle,Text,AxesImage等

容器类型Artist对象包含多个Artist对象使他们组织成一个整体例如Axis,Axes,Figure对象

Artist对象进行绘图的流程

  • 创建Figure对象
  • 为Figure对象创建一个或多个Axes对象
  • 调用Axes对象的方法来创建各种简单的Artist对象
import matplotlib.pyplot as plt
fig = plt.figure()
# 列表用于描述图片所在的位置以及图片的大小
ax = fig.add_axes([0.15, 0.1, 0.7, 0.3])
ax.set_xlabel('time')
line = ax.plot([1, 2, 3], [1, 2, 1])[0]
# ax的lines属性是一个包含所有曲线的列表
print(line is ax.lines[0])
# 通过get_*获得相应的属性
print(ax.get_xaxis().get_label().get_text())
plt.show()

设置Artist属性

get_* 和 set_* 函数进行读写fig.set_alpha(0.5*fig.get_alpha())


Artist 属性


作用


alpha


透明度,值在0到1之间,0为完全透明,1为完全不透明


animated


布尔值,在绘制动画效果时使用


axes


此Artist对象所在的Axes对象,可能为None


clip_box


对象的裁剪框


clip_on


是否裁剪


clip_path


裁剪的路径


contains


判断指定点是否在对象上的函数


figure


所在的Figure对象,可能为None


label


文本标签


picker


控制Artist对象选取


transform


控制偏移旋转


visible


是否可见


zorder


控制绘图顺序

一些例子

import matplotlib.pyplot as plt
fig = plt.figure()
# 设置背景色
fig.patch.set_color('g')
# 必须更新界面才会有效果
fig.canvas.draw()
plt.show()
# artist对象的所有属性都可以通过相应的get_*()和set_*()进行读写
# 例如设置下面图像的透明度
line = plt.plot([1, 2, 3, 2, 1], lw=4)[0]
line.set_alpha(0.5)
line.set(alpha=0.5, zorder=1)
# fig.canvas.draw()
# 输出Artist对象的所有属性名以及与之对应的值
print(fig.patch)
plt.show()

import matplotlib.pyplot as plt
fig = plt.figure()
fig.subplots_adjust(top=0.8)
ax1 = fig.add_subplot(211)
ax1.set_ylabel('volts')
ax1.set_title('a sine wave')
t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2*np.pi*t)
line, = ax1.plot(t, s, color='blue', lw=2)
# Fixing random state for reproducibility
np.random.seed(19680801)
ax2 = fig.add_axes([0.15, 0.1, 0.7, 0.3])
n, bins, patches = ax2.hist(np.random.randn(1000), 50,
    facecolor='yellow', edgecolor='orange')
ax2.set_xlabel('time (s)')
plt.show()

Figure容器

最上层的Artist对象是Figure,包含组成图表的所有元素

Figure可以包涵多个Axes(多个图表),创建主要有三种方法:

  • axes = fig.add_axes([left, bottom, width, height])
  • fig, axes = plt.subplots(行数, 列数)
  • axes = fig.add_subplot(行数, 列数, 序号)

Figure 属性


说明


axes


Axes对象列表


patch


作为背景的Rectangle对象


images


FigureImage对象列表,用来显示图片


legends


Legend对象列表


lines


Line2D对象列表


patches


patch对象列表


texts


Text对象列表,用来显示文字

import matplotlib.pyplot as plt
# 下面请看一个多Figure,多Axes,互相灵活切换的例子。
plt.figure(1) # 创建图表1
plt.figure(2) # 创建图表2
ax1 = plt.subplot(121) # 在图表2中创建子图1
ax2 = plt.subplot(122) # 在图表2中创建子图2
x = np.linspace(0, 3, 100)
for i in range(5):
    plt.figure(1) # 切换到图表1
    plt.plot(x, np.exp(i*x/3))
    plt.sca(ax1) # 选择图表2的子图1
    plt.plot(x, np.sin(i*x))
    plt.sca(ax2) # 选择图表2的子图2
    plt.plot(x, np.cos(i*x))
    ax2.plot(x, np.tanh(i*x)) # 也可以通过ax2的plot方法直接绘图
plt.show()
plt.close() # 打开了两个Figure对象,因此要执行plt.close()两次
plt.close()
# 还可以使用subplots函数,一次生成多个子图,并返回Figure对象和Axes对象数组。
# 注意subplot和subplots两个函数差一个s,前者是逐个生成子图,后者是批量生成。
fig, axes = plt.subplots(2, 3, figsize=(4,3))
[a,b,c],[d,e,f] = axes
print(axes.shape)
print(b)
plt.show()
plt.close()

Axes容器

  • 图像的区域,有数据空间(标记为内部蓝色框)
  • 图形可以包含多个 Axes,轴对象只能包含一个图形
  • Axes 包含两个(或三个)Axis对象,负责数据限制
  • 每个轴都有一个标题(通过set_title()设置)、一个x标签(通过set_xLabel()设置)和一个通过set_yLabel()设置的y标签集。

Axes 属性


说明


artists


A list of Artist instances


patch


Rectangle instance for Axes background


collections


A list of Collection instances


images


A list of AxesImage


legends


A list of Legend instances


lines


A list of Line2D instances


patches


A list of Patch instances


texts


A list of Text instances


xaxis


matplotlib.axis.XAxis instance


yaxis


matplotlib.axis.YAxis instance


Axes的方法(Helper method)


所创建的对象(Artist )


添加进的列表(Container)


ax.annotate - text annotations


Annotate


ax.texts


ax.bar - bar charts


Rectangle


ax.patches


ax.errorbar - error bar plots


Line2D and Rectangle


ax.lines and ax.patches


ax.fill - shared area


Polygon


ax.patches


ax.hist - histograms


Rectangle


ax.patches


ax.imshow - image data


AxesImage


ax.images


ax.legend - axes legends


Legend


ax.legends


ax.plot - xy plots


Line2D


ax.lines


ax.scatter - scatter charts


PolygonCollection


ax.collections


ax.text - text


Text


ax.texts

subplot2grid函数进行更复杂的布局。subplot2grid(shape, loc, rowspan=1, colspan=1, **kwargs)

  • shape为表示表格形状的元组(行数,列数)
  • loc为子图左上角所在的坐标元组(行,列)
  • rowspan和colspan分别为子图所占据的行数和列数
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6))
ax1 = plt.subplot2grid((3,3),(0,0),colspan=2)
ax2 = plt.subplot2grid((3,3),(0,2),rowspan=2)
ax3 = plt.subplot2grid((3,3),(1,0),rowspan=2)
ax4 = plt.subplot2grid((3,3),(2,1),colspan=2)
ax5 = plt.subplot2grid((3,3),(1,1))
plt.show()
plt.close()

坐标轴上的刻度线、刻度文本、坐标网格及坐标轴标题等

set_major_*   set_minor_*

get_major_*   get_minor_*

import numpy as np
import matplotlib.pyplot as plt
# plt.figure creates a matplotlib.figure.Figure instance
fig = plt.figure()
rect = fig.patch # a rectangle instance
rect.set_facecolor('yellow')
ax1 = fig.add_axes([0.1, 0.3, 1,1])
rect = ax1.patch
rect.set_facecolor('orange')
for label in ax1.xaxis.get_ticklabels():
    # label is a Text instance
    label.set_color('red')
    label.set_rotation(45)
    label.set_fontsize(16)
for line in ax1.yaxis.get_ticklines():
    # line is a Line2D instance
    line.set_color('green')
    line.set_markersize(5)
    line.set_markeredgewidth(3)
plt.show()

坐标轴刻度设置

matplotlib会按照用户所绘制的图的数据范围自动计算,但有的时候也需要我们自定义。

我们有时候希望将坐标轴的文字改为我们希望的样子,比如特殊符号,年月日等。

# 修改坐标轴刻度的例子
# 配置X轴的刻度线的位置和文本,并开启副刻度线
# 导入fractions包,处理分数
import numpy as np
import matplotlib.pyplot as plt
from fractions import Fraction
# 导入ticker,刻度定义和文本格式化都在ticker中定义
from matplotlib.ticker import MultipleLocator, FuncFormatter
x = np.arange(0, 4*np.pi, 0.01)
fig, ax = plt.subplots(figsize=(8,4))
plt.plot(x, np.sin(x), x, np.cos(x))
# 定义pi_formatter, 用于计算刻度文本
# 将数值x转换为字符串,字符串中使用Latex表示数学公式。
def pi_formatter(x, pos):
    frac = Fraction(int(np.round(x / (np.pi/4))), 4)
    d, n = frac.denominator, frac.numerator
    if frac == 0:
        return "0"
    elif frac == 1:
        return "$\pi$"
    elif d == 1:
        return r"${%d} \pi$" % n
    elif n == 1:
        return r"$\frac{\pi}{%d}$" % d
    return r"$\frac{%d \pi}{%d}$" % (n, d)
# 设置两个坐标轴的范围
plt.ylim(-1.5,1.5)
plt.xlim(0, np.max(x))
# 设置图的底边距
plt.subplots_adjust(bottom = 0.15)
plt.grid() #开启网格
# 主刻度为pi/4
# 用MultipleLocator以指定数值的整数倍放置刻度线
ax.xaxis.set_major_locator( MultipleLocator(np.pi/4) )
# 主刻度文本用pi_formatter函数计算
# 使用指定的函数计算刻度文本,这里使用我们刚刚编写的pi_formatter函数
ax.xaxis.set_major_formatter( FuncFormatter( pi_formatter ) )
# 副刻度为pi/20
ax.xaxis.set_minor_locator( MultipleLocator(np.pi/20) )
# 设置刻度文本的大小
for tick in ax.xaxis.get_major_ticks():
    tick.label1.set_fontsize(16)
plt.show()
plt.close()

import datetime
import numpy as np
import matplotlib.pyplot as plt
# 准备数据
x = np.arange(0,10,0.01)
y = np.sin(x)
# 将数据转换为datetime对象列表
date_list = []
date_start = datetime.datetime(2000,1,1,0,0,0)
delta = datetime.timedelta(days=1)
for i in range(len(x)):
    date_list.append(date_start + i*delta)
# 绘图,将date_list作为x轴数据,当作参数传递
fig, ax = plt.subplots(figsize=(10,4))
plt.plot(date_list, y)
# 设定标题
plt.title('datetime example')
plt.ylabel('data')
plt.xlabel('Date')
plt.show()
plt.close()

如果数据中本来就有时间日期信息,可以使用strptime和strftime直接转换。

使用strptime函数将字符串转换为time,使用strftime将time转换为字符串。

python中的时间日期格式化符号:


符号


意义


%y


两位数的年份表示(00-99)


%Y


四位数的年份表示(000-9999)


%m


月份(01-12)


%d


月内中的一天(0-31)


%H


24小时制小时数(0-23)


%I


12小时制小时数(01-12)


%M


分钟数(00=59)


%S


秒(00-59)


%a


本地简化星期名称


%A


本地完整星期名称


%b


本地简化的月份名称


%B


本地完整的月份名称


%c


本地相应的日期表示和时间表示


%j


年内的一天(001-366)


%p


本地A.M.或P.M.的等价符


%U


一年中的星期数(00-53)星期天为星期的开始


%w


星期(0-6),星期天为星期的开始


%W


一年中的星期数(00-53)星期一为星期的开始


%x


本地相应的日期表示


%X


本地相应的时间表示


%Z


当前时区的名称


%%


%号本身

总结

到此这篇关于python使用Matplotlib绘图及设置的文章就介绍到这了,更多相关python Matplotlib绘图设置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-05-13

Python&nbsp;Matplotlib&nbsp;实现3D绘图详解

目录 第一个三维绘图程序 3D散点图 3D等高线图 3D线框图 3D曲面图 最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较为实用的 3D 绘图程序包,比如 mpl_toolkits.mplot3d,通过调用该程序包一些接口可以绘制 3D散点图.3D曲面图.3D线框图等 mpl_toolkits 是 Matplotlib 的绘图工具包. 第一个三维绘图程序 下面编写第一个三维绘图程序. 首先创建一个三维绘

Python matplotlib绘图可视化知识点整理(小结)

无论你工作在什么项目上,IPython都是值得推荐的.利用ipython --pylab,可以进入PyLab模式,已经导入了matplotlib库与相关软件包(例如Numpy和Scipy),额可以直接使用相关库的功能. 本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找. 这样IPython配置为使用你所指定的matplotlib GUI后端(TK/wxPython/PyQt/Mac OS X native/GTK).对于大部分用户而言,默认的后端就已经够用了.Pylab模式

python绘图库Matplotlib的安装

本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地 进行制图.Matplotlib的安装可以参见:官网链接 http://matplotlib.org/users/installing.html 安装总结步骤如下: windows 平台上下载.exe格式 直接安装. 1.python下载安装 下载地址:http://www.python.org/download/

学习python中matplotlib绘图设置坐标轴刻度、文本

总结matplotlib绘图如何设置坐标轴刻度大小和刻度. 上代码: from pylab import * from matplotlib.ticker import MultipleLocator, FormatStrFormatter xmajorLocator = MultipleLocator(20) #将x主刻度标签设置为20的倍数 xmajorFormatter = FormatStrFormatter('%1.1f') #设置x轴标签文本的格式 xminorLocator = M

python matplotlib绘图,修改坐标轴刻度为文字的实例

工作中偶尔需要做客流分析,用pyplot 库绘图.一般情况下, x 轴刻度默认显示为数字. 例如: 我希望x 轴刻度显示为星期日期. 查询pyplot 文档, 发现了 xtick() 函数可以修改刻度. 代码如下: import matplotlib.pyplot as plt import numpy as np #val_ls = [np.random.randint(100) + i*20 for i in range(7)] scale_ls = range(7) index_ls =

python的绘图工具matplotlib使用实例

matplotlib是功能十分强大的绘制二维图形的Python模块,它用Python语言实现了MATLAB画图函数的易用性,同时又有非常强大的可定制性.它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览.复制.粘贴一下,基本上都能搞定! 实例代码如下: 1. 柱状图 import matp

python使用matplotlib绘图时图例显示问题的解决

前言 matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包.在使用Python matplotlib库绘制数据图时,需要使用图例标注数据类别,但是传参时,会出现图例解释文字只显示第一个字符,需要在传参时在参数后加一个逗号(应该是python语法,加逗号,才可以把参数理解为元组类型吧),就可解决这个问题, 示例如下 import numpy as np import matplotlib.pyplot as plt from matplotlib.ticker

Python 绘图库 Matplotlib 入门教程

运行环境 由于这是一个Python语言的软件包,因此需要你的机器上首先安装好Python语言的环境.关于这一点,请自行在网络上搜索获取方法. 关于如何安装Matplotlib请参见这里:Matplotlib Installing. 笔者推荐大家通过pip的方式进行安装,具体方法如下: sudo pip3 install matplotlib 本文中的源码和测试数据可以在这里获取:matplotlib_tutorial 本文的代码示例会用到另外一个Python库:NumPy.建议读者先对NumPy

Python 机器学习库 NumPy入门教程

NumPy是一个Python语言的软件包,它非常适合于科学计算.在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础库. 本文是对它的一个入门教程. 介绍 NumPy是一个用于科技计算的基础软件包,它是Python语言实现的.它包含了: 强大的N维数组结构 精密复杂的函数 可集成到C/C++和Fortran代码的工具 线性代数,傅里叶变换以及随机数能力 除了科学计算的用途以外,NumPy也可被用作高效的通用数据的多维容器.由于它适用于任意类型的数据,这使得NumPy可以无缝和

Python 数据处理库 pandas 入门教程基本操作

pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有表现力的数据结构,目的是使"关系"或"标记"数据的工作既简单又直观.它旨在成为在Python中进行实际数据分析的高级构建块. 入门介绍 pandas适合于许多不同类型的数据,包括: 具有异构类型列的表格数据,例如SQL表格或Excel数据 有序和无序(不一定是固定频率)时间序列数据.

Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】

本文实例讲述了Python面向对象程序设计OOP.分享给大家供大家参考,具体如下: 类是Python所提供的最有用的的工具之一.合理使用时,类可以大量减少开发的时间.类也在流行的Python工具中使用,例如,tkinter GUI API. 为何使用类 与面向对象的Java一样,类是对现实世界的一种抽象. 从更具体的程序设计观点来看,类是Python的程序组成单元,就像函数和模块一样:类是封装逻辑和数据的另一种方式.实际上,类也定义新的命名空间,在很大程度上就像模块.但是类有三个重要的独到之处,

Python中的Numpy入门教程

1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数.如果接触过matlab.scilab,那么numpy很好入手. 在以下的代码示例中,总是先导入了numpy: 复制代码 代码如下: >>> import numpy as np>>> print np.version.version1.6.2

最基础的Python的socket编程入门教程

本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在Python 3.4下. Python的socket功能封装在socket库中,要使用socket,记得先import socket,socket库的详细介绍参见官方文档. 创建Socket 首先创建一个socket,使用socket库中得socket函数创建. import socket # create an INET, STREAM soc

一篇不错的Python入门教程

原文 http://www.hetland.org/python/instant-hacking.php Instant Hacking[译文] 译者: 肯定来过 这是一篇简短的关于python程序设计语言的入门教程,原文在这里,翻着词典翻译了来! 这是一份对编程艺术的简短介绍,其中的例子是用python写成的.(如果你已经知道了该如何编程,但是想简单了解一下python,你可以查阅我的另一篇文章Instant Python.)这篇文章已经被翻译为意大利.波兰.日本.塞尔维亚以及巴西葡萄亚语等许

Python 数据处理库 pandas进阶教程

前言 本文紧接着前一篇的入门教程,会介绍一些关于pandas的进阶知识.建议读者在阅读本文之前先看完pandas入门教程. 同样的,本文的测试数据和源码可以在这里获取: Github:pandas_tutorial. 数据访问 在入门教程中,我们已经使用过访问数据的方法.这里我们再集中看一下. 注:这里的数据访问方法既适用于Series,也适用于DataFrame. 基础方法:[]和. 这是两种最直观的方法,任何有面向对象编程经验的人应该都很容易理解.下面是一个代码示例: # select_da

详解plotly.js 绘图库入门使用教程

本文介绍了plotly.js 绘图库入门使用教程,分享给大家,具体如下: Plotly 缘起 这两天想在前端展现数学函数图像,猜测应该有成熟的 js 库. 于是,简单的进行了尝试. 最后决定使用plotly.js,其他的比如function-plot 看起来也不错,以后有时间再看. Plotly plotly.jsis the open source JavaScript graphing library that powers Plotly. Plotly 可以称之为迄今最优秀的绘图库,没有之