python画图之plt.plot

(43条消息) matplotlib.pyplot.plot()参数详解_ims-的博客-CSDN博客_matplotlib plot

【python】Matplotlib作图常用marker类型、线型和颜色 - 大大西瓜吃不饱 - 博客园 (cnblogs.com)

plt.plot()函数详细介绍

import matplotlib.pyplot as plt
help(plt.plot)

 

plt.plot(x, y, format_string, **kwargs)

参数说明
x X轴数据,列表或数组,可选
y Y轴数据,列表或数组
format_string 控制曲线的格式字符串,可选
**kwargs 第二组或更多(x,y,format_string),可画多条曲线
format_string 由颜色字符、风格字符、标记字符组成
  • 颜色字符
    • 'b' 蓝色 'm' 洋红色 magenta
    • 'g' 绿色 'y' 黄色
    • 'r' 红色 'k' 黑色
    • 'w' 白色 'c' 青绿色 cyan
    • '#008000' RGB某颜色 '0.8' 灰度值字符串
    • 多条曲线不指定颜色时,会自动选择不同颜色
  • 风格字符
    • '‐' 实线
    • '‐‐' 破折线
    • '‐.' 点划线
    • ':' 虚线
    • '' ' ' 无线条
  • 标记字符
    • '.' 点标记
    • ',' 像素标记(极小点)
    • 'o' 实心圈标记
    • 'v' 倒三角标记
    • '^' 上三角标记
    • '>' 右三角标记
    • '<' 左三角标记
    • ``'.'`` point marker
      ``','`` pixel marker
      ``'o'`` circle marker
      ``'v'`` triangle_down marker
      ``'^'`` triangle_up marker
      ``'<'`` triangle_left marker
      ``'>'`` triangle_right marker
      ``'1'`` tri_down marker
      ``'2'`` tri_up marker
      ``'3'`` tri_left marker
      ``'4'`` tri_right marker
      ``'s'`` square marker
      ``'p'`` pentagon marker 五角星形
      ``'*'`` star marker
      ``'h'`` hexagon1 marker  六边形
      ``'H'`` hexagon2 marker
      ``'+'`` plus marker
      ``'x'`` x marker
      ``'D'`` diamond marker
      ``'d'`` thin_diamond marker
      ``'|'`` vline marker
      ``'_'`` hline marker

       

       

b = np.arange(5)
plt.plot(b,b*1.0,'g.-',b,b*1.5,'rx',b,b*2.0, 'b')
plt.show()
 

 

 

**kwargs : 第二组或更多(x,y,format_string)

color : 控制颜色, color='green'
linestyle : 线条风格, linestyle='dashed'
marker : 标记风格, marker='o'
markerfacecolor: 标记颜色, markerfacecolor='blue'
markersize: 标记尺寸, markersize=20

假如希望标记的颜色和线条的颜色不同,那么就这样用:

plt.plot(x,y,'g-')
plt.plot(x,y,'r.')
plt.show()

 

即,把plt.show()写在最后一句就行了。

 

坐标轴的设置:

(46条消息) Matplotlib数据可视化——设置坐标轴,原点,图例_量子孤岛的博客-CSDN博客_matplotlib坐标原点

今天突破了导轨和转台的调试程序,学习会Python娱乐一下
matplotlib库和MATLAB的数据可视化功能几乎是相同,只是因为人工智能的火爆以及使用方便深受大家喜爱。

1.基本使用
1.1figure图像
绘制单一函数的图像

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 1, 30)
y = 3*x + 1
plt.plot(x, y)
plt.show()

绘制两个函数

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50) # 注意linspace不是linespace
y1 = 2*x+1
y2 = x**2+1 # 乘方注意和C的区别
# 绘制第一个函数
plt.figure()
plt.plot(x, y1)
# 绘制第二个函数
plt.figure(num=3, figsize=(6, 6))
plt.plot(x, y2)

plt.show()


绘制在同一坐标系中

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
plt.plot(x, y1)
plt.plot(x, y2, color='violet', linewidth=3.0, linestyle='--') # 指定颜色,线宽和线型
plt.show()


1.2 坐标轴的设置
截取x,y的某一区间进行展示
设置x,y的标签
设置某一轴的刻度间隔划分
设置坐标值对应的相应含义并正则化设置字体格式
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='red',linewidth = 2.0,linestyle = '--')#指定颜色,线宽和线型

#截取x,y的某一部分
plt.xlim((-1,2))
plt.ylim((-2,3))
#设置x,y的坐标描述标签
plt.xlabel("I am x")
plt.ylabel("I am y")
#设置x刻度的间隔
new_ticks = np.linspace(-1,2,5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.5, 0, 1.5, 3],
[r'$Really\ bad\ \alpha$', r'$bad$', r'$normal$', r'$good$', r'$very\ good$'])#r表示正则化,$$表示用数学字体输出

plt.show()

 


移动坐标轴的位置
隐藏上下左右的某一个轴
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='red',linewidth = 2.0,linestyle = '--')#指定颜色,线宽和线型

#截取x,y的某一部分
plt.xlim((-1,2))
plt.ylim((-2,3))
#设置x,y的坐标描述标签
plt.xlabel("I am x")
plt.ylabel("I am y")
#设置x刻度的间隔
new_ticks = np.linspace(-1,2,5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.5, 0, 1.5, 3],
[r'$Really\ bad\ \alpha$', r'$bad$',
r'$normal$', r'$good$', r'$very\ good$'])
#r表示正则化,$$表示用数学字体输出
# gca = 'get current axis'
ax = plt.gca()#获取当前坐标的位置
#去掉坐标图的上和右 spine翻译成脊梁
ax.spines['right'].set_color('None')
ax.spines['top'].set_color('None')
#指定坐标的位置
ax.xaxis.set_ticks_position('bottom') # 设置bottom为x轴
ax.yaxis.set_ticks_position('left') # 设置left为x轴
ax.spines['bottom'].set_position(('data',0))#这个位置的括号要注意
ax.spines['left'].set_position(('data',0))
plt.show()

 

1.3设置legend图例
最简单的方法就是在plot中打上label然后用legend( )方法实现

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
plt.plot(x,y1,label='山高月小')
plt.plot(x,y2,color='red',linewidth = 2.0,linestyle = '--',label='水落石出')#指定颜色,线宽和线型

plt.legend()
plt.show()

如图所示,中文出现乱码,上网查了一下,需要在开头加上

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
1
2
这时显示正常了

更加高级的方法

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2

#绘制在同一个figure中
plt.figure()
l1, = plt.plot(x,y1,label='山高月小')#放在handles中l1一定要加,
l2, = plt.plot(x,y2,color='red',linewidth = 2.0,linestyle = '--',label='水落石出')

plt.legend(handles=[l1, l2,],labels=['小舟从此逝','江海寄余生'],loc='best')
plt.show()



如果只打印l1的图例,则修改

plt.legend(handles=[l1,],labels=['小舟从此逝',],loc='best')
1

未完待续~~
————————————————
版权声明:本文为CSDN博主「量子孤岛」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fly_wt/article/details/84147063

 

posted on 2022-01-14 22:06  一杯明月  阅读(2681)  评论(0编辑  收藏  举报