Matplotlib(绘图库)- 自定义图形
绘图区域主要包括线颜色、标记、线型、文本标注、图例、坐标轴、标题等要素,下面对这些要素展开讲解。1 线颜色
别名 颜色
b 蓝色
g 绿色
r 红色
y 黄色
c 青色
k 黑色
m 洋红色
w 白色
下面分别绘制三条曲线,线颜色依次为红、蓝、绿。实例如下:[code]import matplotlib.pyplot as plt # 为方便简介为plt
import numpy as np # 画图过程中会使用numpy
import pandas as pd # 画图过程中会使用pandas
#使用numpy产生数据
x = np.arange(-5,5,0.5) # 定义x数据范围
y1 = x*3 # 定义y1数据范围
y2 = x*x # 定义y2数据范围
y3 = np.sin(x)
#创建窗口、子图
fig = plt.figure() # 先创建窗口一个窗口
ax1 = fig.add_subplot(3,1,1) #通过fig添加子图,参数:行数,列数,第几个。
ax2 = fig.add_subplot(3,1,2)
ax3 = fig.add_subplot(3,1,3)
ax1.plot(x,y1,color = 'r') # plot()画出曲线,线颜色为红色
ax2.plot(x,y2,color = 'b') # 线颜色为蓝色
ax3.plot(x,y1,color = 'g') # 线颜色为绿色
plt.show() # 显示图像[/code]绘制效果图如下:
[img]http://p.algo2.net/2024/0312/7088b145345b1.jpg[/img]
2 线标记
标记marker 描述
‘o’ 圆圈
‘.’ 点
‘D’ 菱形
‘s’ 正方形
‘h’ 六边形1
‘*’ 星号
‘H’ 六边形2
‘d’ 小菱形
‘_’ 水平线
‘v’ 一角朝下的三角形
‘8’ 八边形
‘<’ 一角朝左的三角形
‘p’ 五边形
‘>’ 一角朝右的三角形
‘,’ 像素
‘^’ 一角朝上的三角形
‘+’ 加号
‘\ ‘ 竖线
‘None’,’’,’ ‘ 无
‘x’ X
下面分别绘制三条曲线,线标记依次为‘o’、‘+’、‘^’。实例如下:[code]import matplotlib.pyplot as plt # 为方便简介为plt
import numpy as np # 画图过程中会使用numpy
import pandas as pd # 画图过程中会使用pandas
#使用numpy产生数据
x = np.arange(-5,5,0.5) # 定义x数据范围
y1 = x*3 # 定义y1数据范围
y2 = x*x # 定义y2数据范围
y3 = np.sin(x)
#创建窗口、子图
fig = plt.figure() # 先创建窗口一个窗口
ax1 = fig.add_subplot(3,1,1) #通过fig添加子图,参数:行数,列数,第几个。
ax2 = fig.add_subplot(3,1,2)
ax3 = fig.add_subplot(3,1,3)
ax1.plot(x,y1,color = 'r',marker = 'o') # plot()画出曲线,线颜色为红色,标记为‘o’
ax2.plot(x,y2,color = 'b',marker = '+') # 线颜色为蓝色,标记为‘+’
ax3.plot(x,y3,color = 'g',marker = '^') # 线颜色为绿色,标记为‘^’
plt.show() # 显示图像[/code]绘制效果图如下:
[img]http://p.algo2.net/2024/0312/521ff8e5fd983.jpg[/img] 文本标注
使用 text() 在绘制区域内标注文本。[code]import matplotlib.pyplot as plt # 为方便简介为plt
import numpy as np # 画图过程中会使用numpy
import pandas as pd # 画图过程中会使用pandas
#使用numpy产生数据
x = np.arange(-5,5,1) # 定义x数据范围
y1 = x*3 # 定义y1数据范围
#创建窗口、子图
fig = plt.figure() # 先创建窗口一个窗口
ax1 = fig.add_subplot(2,1,1) #通过fig添加子图,参数:行数,列数,第几个。
ax2 = fig.add_subplot(2,1,2)
plt.rcParams["font.family"]=["SimHei"] # 确保图中中文字体正确显示
ax1.plot(x,y1,color = 'r',marker = 'o') # plot()画出曲线,线颜色为红色
ax2.plot(x,y1,color = 'r',marker = 'o') # plot()画出曲线,线颜色为红色
for x, y in zip(x, y1):
ax2.text(x, y + 0.2, '%.2f' % y, ha='center', va='bottom')
# ha: horizontal alignment水平方向
# va: vertical alignment垂直方向
ax2.text(2,2,'显示对应点的Y值') # 在坐标(2,2)处标注'显示对应点的Y值'
plt.show() # 显示图像[/code]实例效果图如下:
注意,通过申明字体,确保图中中文字体正确显示,防止出现乱码。plt.rcParams[“font.family”]=[“SimHei”]
[img]http://p.algo2.net/2024/0312/98e5d9e289d23.jpg[/img]
[b]4 图例[/b]
使用 legend() 显示两条曲线图例。[code]import matplotlib.pyplot as plt # 为方便简介为plt
import numpy as np # 画图过程中会使用numpy
import pandas as pd # 画图过程中会使用pandas
x = np.arange(-5,5,0.1) # 定义x数据范围
y1 = x*3 # 定义y1数据范围
y2 = x*x # 定义y2数据范围
plt.rcParams["font.family"]=["SimHei"] # 确保图中中文字体正确显示
#创建窗口、子图
fig = plt.figure() # 先创建窗口一个窗口
plt.plot(x,y1) # plot()画出曲线
plt.plot(x,y2,color = 'red',marker = '*', linestyle = '--') # 设置曲线颜色、线标记,线样式
plt.legend(labels=['曲线1','曲线2'],loc='best') #best表示自动分配最佳位置
plt.show() # 显示图像[/code]实例效果图如下:
[img]http://p.algo2.net/2024/0312/e77d85c9d9329.jpg[/img]
[b]5 坐标轴[/b]
使用 xlim() 和 ylim() 设置坐标轴范围,使用 xlabel() 和 ylabel() 设置坐标轴名称。[code]import matplotlib.pyplot as plt # 为方便简介为plt
import numpy as np # 画图过程中会使用numpy
import pandas as pd # 画图过程中会使用pandas
x = np.arange(-5,5,0.1) # 定义x数据范围
y1 = x*3 # 定义y1数据范围
y2 = x*x # 定义y2数据范围
plt.rcParams["font.family"]=["SimHei"] # 确保图中中文字体正确显示
plt.rcParams['axes.unicode_minus'] = False # 确保坐标轴正确显示正负值
#创建窗口、子图
fig = plt.figure() # 先创建窗口一个窗口
plt.plot(x,y1) # plot()画出曲线
plt.plot(x,y2,color = 'red',marker = '*', linestyle = '--') # 设置曲线颜色、线标记,线样式
plt.legend(labels=['曲线1','曲线2'],loc='best') #best表示自动分配最佳位置
plt.xlim((-2,2))
plt.ylim((-2,5))
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show() # 显示图像[/code]实例效果图如下:
[img]http://p.algo2.net/2024/0312/89828604d552f.jpg[/img]
[b]6 标题[/b]
使用 title() 显示曲线标题。[code]import matplotlib.pyplot as plt # 为方便简介为plt
import numpy as np # 画图过程中会使用numpy
import pandas as pd # 画图过程中会使用pandas
x = np.arange(-5,5,0.1) # 定义x数据范围
y1 = x*3 # 定义y1数据范围
y2 = x*x # 定义y2数据范围
plt.rcParams["font.family"]=["SimHei"] # 确保图中中文字体正确显示
#创建窗口、子图
fig = plt.figure() # 先创建窗口一个窗口
plt.plot(x,y1) # plot()画出曲线
plt.plot(x,y2,color = 'red',marker = '*', linestyle = '--') # 设置曲线颜色、线标记,线样式
plt.legend(labels=['曲线1','曲线2'],loc='best') #best表示自动分配最佳位置
plt.title('XX标题')
plt.show() # 显示图像[/code]实例效果图:
[img]http://p.algo2.net/2024/0312/e77d85c9d9329.jpg[/img]
页:
[1]