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绘图设置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

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

  • python的绘图工具matplotlib使用实例

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

  • 学习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绘图可视化知识点整理(小结)

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

  • Python 绘图库 Matplotlib 入门教程

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

  • 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 实现3D绘图详解

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

  • 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绘图及设置实例(用python制图)

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

  • Python通过matplotlib绘制动画简单实例

    Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等. matplotlib从1.1.0版本以后就开始支持绘制动画,具体使用可以参考官方帮助文档.下面是一个很基本的例子: """ A simple example of an animated plot """ import n

  • Python使用matplotlib绘图无法显示中文问题的解决方法

    本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt # 定义文本框和箭头格式 decisionNode = dict(boxstyle = "sawtooth", fc = "0.8") leafNode = dict(boxstyle = "round4", f

  • Python利用Matplotlib绘图无法显示中文字体的解决方案

    目录 发现问题 解决方式: 总结 发现问题 我在利用Pycharm中的matplotlib库进行绘图的时候,出现了一个问题,当我将所绘的图的横,纵坐标,希望加上一个中文描述的时候,比如,'横坐标','纵坐标'类似这样的描述方法.出现了很多人都会出现的一个问题. import matplotlib.pyplot as plt squares = [1, 4, 9, 16, 25] fig, ax = plt.subplots() ax.plot(squares, linewidth=3) #设置图

  • python中Matplotlib绘制直线的实例代码

    说明 1.导入模块pyplot,并指定别名plt,以避免重复输入pyplot.模块化pyplot包含许多用于制作图表的功能. 2.将绘制的直线坐标传递给函数plot(). 3.通过函数plt.show()打开Matplotlib,显示所绘图形. 实例 import matplotlib.pyplot as plt #将(0,1)点和(2,4)连起来 plt.plot([0,2],[1,4]) plt.show() 相关实例扩展: 线型图 import matplotlib.pyplot as p

  • Python编程matplotlib绘图挑钻石seaborn小提琴和箱线图

    目录 箱线图 小提琴图 想不到大家都这么喜欢用python给女朋友挑钻石,所以我又写了个续. 如果看过之前一篇用python给女朋友挑钻石的文章,那么可以直接从箱线图开始读. seaborn是matplotlib的补充包,提供了一系列高颜值的figure,并且集成了多种在线数据集,通过sns.load_dataset()进行调用,可供学习,如果网络不稳定,可下载到本地,然后在调用的时候使用把cache设为True. 其中,diamonds数据集中包含了钻石数据,总计十项,分别是[重量/克拉]ca

  • Python使用matplotlib绘制圆形代码实例

    1.定义一个画圆的函数 import numpy as np import matplotlib.pyplot as plt def plot_circle(center=(3, 3),r=2): x = np.linspace(center[0] - r, center[0] + r, 5000) y1 = np.sqrt(r**2 - (x-center[0])**2) + center[1] y2 = -np.sqrt(r**2 - (x-center[0])**2) + center[1

  • Python的matplotlib绘图如何修改背景颜色的实现

    在主图中背景颜色不知道怎么改,plt.plot()中没有axisbg参数. 但是子图可以对plt.subplot的参数做修改,下面是对子图的背景颜色修改代码 import matplotlib.pyplot as plt import numpy as np # Fixing random state for reproducibility np.random.seed(19680801) dt = 0.01 t = np.arange(0, 30, dt) nse1 = np.random.r

随机推荐