当前位置:   article > 正文

python-Matplotlib画图教程_python画图matplotlib

python画图matplotlib

1. Matplotlib绘图流程

  • 创建画布
  • 绘制图像
  • 显示图像
    下面代码演示

    1. #简单画布
    2. import matplotlib.pyplot as plt
    3. # 1.创建画布
    4. plt.figure()
    5. #2. 图像绘制
    6. x = range(6)
    7. y = range(4,10)
    8. plt.plot(x,y)
    9. #3. 图像显示
    10. plt.show()

2.基础功能演示

1.画布参数:figure

  • figsize:画布大小设置,分别是x,y轴反向的大小
  • dpi:画布分辨率:

    plt.figure(figsize=(20,10),dpi=200)

    2.图像保存:savefige

  • 需要在展示图像的前面设置,plt.show()会释放figure资源,如果在显示图像之后保存图像只能保存空图像。
  • 参数写保存的图片地址。

    plt.savefige('test.png')

    3.自定义刻度:xticks,yticks

  • plt.xticks(x,**kwargs):x要显示的刻度值
  • plt.yticks(y,**kwargs):y要显示的刻度值

    • 第一参数为需要显示的刻度值,需要数字类型
    • 第二个参数为要显示刻度名,如果没写,显示第一个参数创建的刻度值

出现以下问题是因为没有安装中文包

 

 

解决方法

可在代码中编写以下代码

  1. matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
  2. matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号

更多解决方法请点击链接查看:Python-matplotlib-中文字体显示和设置_shangyj17的博客-CSDN博客_python中英文字体

4.添加网格信息:grid

plt.grid(True,linestyle='--',alpha=1)
  • True:表示添加
  • linestyle:表示添加的是虚线还是实线

    • 一个-表示实线
    • 两个--表示虚线
  • alpha:表示对应的透明度

    5.添加描述信息

  • plt.xlabel:x轴标签
  • plt.ylabel:y轴标签
  • plt.title:数据表标题

    1. plt.xlabel('时间')
    2. plt.ylabel("温度")
    3. plt.title("一小时温度变化图",fontsize=20)

    效果如下:可用fontsizea参数调节字体大小

 

5.多个信息

只需在原有的基础再次添加plot即可,但需区分线条,那就需要显示图例

  • plt.legend()

    • loc:显示位置,值默认为best,可填入0-10
    • 需要在plot里面添加label信息

 

location stringlocation code
best0
upper right1
upper left2
lower left3
lower right4
right5
center left6
center right7
lower center8
upper center9
center10

6. 设置图形风格

plt.polt(x,y,color="r",linestyle='--',label='北京')
  • x:x轴数据
  • y:y轴数据
  • color:折线颜色
  • linestyle:线条形状
  • lebel:线条标签名
颜色字符风格字符
r红色- 实线
g绿色-- 虚线
b蓝色-. 点划线
w白色: 点虚线
c青色'' 留空,空格
m洋红
y黄色
k黑色

7.多个坐标系显示:plt.subplots(面向对象的画图方法)

显示效果如下:

 

fig,axes = plt.subplot(nrows=2,ncols=1,figsize=(20.8),dpi=200)
  • nrows:表示绘制几行图像
  • ncols:表示绘制几列图像
  • 注意:有些方法需要添加set_*,
    以下是一个与多个区别,代码演示。

    1. #温度实例
    2. import matplotlib.pyplot as plt
    3. import random
    4. import matplotlib
    5. matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
    6. matplotlib.rcParams['axes.unicode_minus']=False
    7. x = range(60)
    8. y_beijing = [random.uniform(10,15) for i in x]
    9. y_shanghai = [random.uniform(10,15) for i in x]
    10. ## 画布
    11. #plt.figure(figsize=(20,8),dpi=100)
    12. fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=200)
    13. ## 图像绘制
    14. # plt.plot(x,y_beijing,label='北京')
    15. # plt.plot(x,y_shanghai,label='上海',linestyle=':')
    16. axes[0].plot(x,y_beijing,color='r',label='北京')
    17. axes[1].plot(x,y_shanghai,label='上海',linestyle=':')
    18. ## y刻度
    19. y_ticks=range(40)
    20. # plt.yticks(y_ticks[::5])
    21. axes[0].set_yticks(y_ticks[::5])
    22. axes[1].set_yticks(y_ticks[::5])
    23. # #x刻度
    24. x_ticks_label = ['11点{}分'.format(i) for i in x]
    25. # plt.xticks(x[::5],x_ticks_label[::5])
    26. axes[0].set_xticks(x[::5])
    27. axes[0].set_xticklabels(x_ticks_label[::5])
    28. axes[1].set_xticks(x[::5])
    29. axes[1].set_xticklabels(x_ticks_label[::5])
    30. # #添加网格
    31. # plt.grid(True,linestyle='-',alpha=1)
    32. axes[0].grid(True,linestyle='-',alpha=1)
    33. axes[1].grid(True,linestyle='-',alpha=1)
    34. # #添加信息
    35. # plt.xlabel('时间')
    36. # plt.ylabel("温度")
    37. # plt.title("一小时温度变化图",fontsize=20)
    38. axes[0].set_xlabel('时间')
    39. axes[0].set_ylabel("温度")
    40. axes[0].set_title("北京一小时温度变化图",fontsize=20)
    41. axes[1].set_xlabel('时间')
    42. axes[1].set_ylabel("温度")
    43. axes[1].set_title("上海一小时温度变化图",fontsize=20)
    44. # #显示图例
    45. # plt.legend(loc='best',fontsize=20)
    46. axes[0].legend(loc='best',fontsize=20)
    47. axes[1].legend(loc='best',fontsize=20)
    48. plt.show()

    plot绘制数学图像(爱心)

    效果如下:

    具体代码如下

     

    1. import numpy as np
    2. #生成数据
    3. x = np.linspace(-np.pi/2,np.pi/2,500) # 在【Π/2/2】的范围内生成500个数
    4. y=(0.64*np.sqrt(abs(x))-0.8+1.2**abs(x)*np.cos(200*x))*np.sqrt(np.cos(x))
    5. plt.figure(figsize=(10,10),dpi=50)
    6. plt.plot(x,y,color='r')
    7. plt.grid()
    8. plt.show()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/115630
推荐阅读
相关标签
  

闽ICP备14008679号