matplotlib图形

https://matplotlib.org/api/ 官方文档
Matplotlib中的基本图表包括的元素

x轴和y轴 axis 水平和垂直的轴线

轴标签 axisLabel 水平和垂直的轴标签

x轴和y轴刻度 tick 刻度标示坐标轴的分隔,包括最小刻度和最大刻度

x轴和y轴刻度标签 tick label 表示特定坐标轴的值

绘图区域(坐标系) axes 实际绘图的区域

画布 figure 呈现所有的坐标系
在这里插入图片描述
在这里插入图片描述

多种图

import matplotlib.pyplot as plt

x=[1,2,3,4]
y=[5,4,3,2]

plt.figure()

#线
plt.subplot(231)
plt.plot(x,y)
#柱状图
plt.subplot(232)
plt.bar(x,y)
#横柱
plt.subplot(233)
plt.barh(x,y)
#多柱
plt.subplot(234)
plt.bar(x,y)
y1=[3,7,8,9]
plt.bar(x,y1,bottom=y,color='r')
#箱图
plt.subplot(235)
plt.boxplot(x)
#散点
plt.subplot(236)
plt.scatter(x,y)

plt.show()

在这里插入图片描述
补充:箱图:一个箱图可以呈现5种数据,最小值,第二四分位数(其以下为数据集合较低的25%数据),中值,第三四分位数(其以上为数据集合中较高的25%数据),最大值

LaTex文本渲染
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
axis设置坐标的长度和范围

坐标轴的范围axis()为(0.0,1.0,0.0,1.0)分别表示xmin,xmax,ymin,ymax

如果不设置axis(),matplotlib会自动使用最小值,刚好可以让我们在一个图中看到所有的数据点,如果设置的范围比数据集合中的最大值小,就看不到所有的数据点,为了避免我们使用maplotlib.pyplot.autoscale()方法,该方法会计算坐标轴的最佳大小以使用数据的显示
参考:知乎:https://www.zhihu.com/question/51745620
还有生成线:

plt.axvline(3)
plt.axvspan(1,1.5)
plt.axhline(2)
plt.axhspan(1,1.5)

在这里插入图片描述

设置渐变颜色

散点图参考:https://blog.csdn.net/qq_38486203/article/details/80578260

point_numbers = list(range(rw.num_points))
plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues,edgecolor='none', s=15)

注意:必须加c且c的数量和点的数量一致
在这里插入图片描述

设置刻度,刻度标签和网格

在matplotlib中调用figure()会显示穿件一个图形,表示一个图形用户界面窗口
刻度是图形的一部分,由刻度定位器–指定刻度所在的位置–和刻度格式器—指定刻度显示的样式组成。刻度有主刻度和次刻度,默认不显示次刻度
当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别表示Get Current Figure和Get Current Axes。在pyplot模块中,许多函数都是对当前的Figure或Axes对象进行处理,比如说:plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调用ax.plot()方法实现真正的绘图。

添加图例和注解

import numpy as np
from matplotlib.pyplot import *

def tulie():
    figure()

    data1=np.random.normal(30,3,100)
    data2=np.random.normal(20,3,100)
    data3=np.random.normal(10,3,100)

    plot(data1,label="data1")
    plot(data2,label="data2")
    plot(data3,label="data3")

    legend(bbox_to_anchor=(0,1.02,1,0.102),loc=1,ncol=3,mode="expand",borderaxespad=0)
    show()
tulie()

legend 参数:https://blog.csdn.net/helunqu2017/article/details/78641290/
在这里插入图片描述
创建图例:
annotate(‘import value’,(3,15),xycoords=‘data’,xytext=(100,38),arrowprops=dict(arrowstyle=’->’))
在这里插入图片描述
参考文章:https://blog.csdn.net/qq_30638831/article/details/79938967

设置坐标轴
    x=np.linspace(-np.pi,np.pi,100)
    y=np.sin(x)
    subplot(211)
    plot(x, y)
    ax=gca()
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.spines['left'].set_position(('data',0))
    ax.spines['bottom'].set_position(('data',0))
    ax.yaxis.set_ticks_position('right')
    subplot(212)
    ax1=gca()
    print(ax1)

在这里插入图片描述

绘制误差条形图

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10,1)
y=np.log(x)

#假设的误差
xe=0.1*np.abs(np.random.randn(len(y)))

plt.bar(x,y,yerr=xe,width=0.4,hatch='/',align='center',ecolor='r',color="cyan",label="example")

plt.xlabel('x')
plt.ylabel('y')
plt.legend(loc='upper left')
plt.show()

在这里插入图片描述
参数介绍:
xerr和yerr用于柱状图生成误差条
width:绘制误差条的宽度
bottom:如果指定了bottom,其值会加到高度中,默认值是none
edgecokor:给定误差条便捷颜色
ecolor:指定误差条的颜色
linewidth:误差条边界宽度,可以设置为0或none
orientation:有vertical和horizontal值

填充颜色
  x=np.linspace(0,2*np.pi,100)
    y=np.sin(x)
    y1=0.5*y
    plt.plot(x,y)
    plt.plot(x,y1)
    plt.fill_between(x,y,y1,where=y>y1,facecolor="cyan",interpolate=True)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值