plot函数python(python图形化编程软件)
本篇文章给大家谈谈plot函数python,以及python图形化编程软件对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
用Python画出一组样本的经验分布函数
要使用Python绘制一组样本的经验分布函数(ECDF),可以按照以下步骤进行。经验分布函数是样本中不大于给定值的观测值所占的比例,能够直观展示样本数据的分布情况。
1.导入必要的库首先,需要导入numpy和matplotlib.pyplot库,分别用于数据处理和绘图。
import numpy as npimport matplotlib.pyplot as plt2.准备样本数据假设有一组排序好的样本数据data。如果数据未排序,需要先进行排序。
data= np.array([1, 2, 2, 3, 4, 4, 4, 5, 6])#示例数据(已排序)3.绘制经验分布函数经验分布函数的绘制步骤如下:
初始化起始点为样本最小值,ECDF初始值为0。遍历样本数据,对于每个数据点,绘制水平线(保持ECDF值不变)和垂直线(ECDF值增加)。确保重复值正确处理(即相同值的ECDF保持不变)。plt.figure(figsize=(6, 4))last, i= min(data)- 1, 0#起始点略小于最小值,确保从0开始n= len(data)while i<= n: if i== 0: current_x= min(data)- 1#起始点 current_y= 0 elif i== n: current_x= max(data)+ 1#结束点 current_y= 1 else: current_x= data[i- 1] current_y= i/ n#绘制垂直线(如果x变化) if i> 0 and(i== n or data[i- 1]!= data[i]): plt.plot([last, current_x], [current_y, current_y],'k')#绘制水平线(如果y变化) if i< n: next_x= data[i] if i< n else max(data)+ 1 next_y=(i+ 1)/ n if i< n else 1 if i== 0 or data[i- 1]!= data[i]: plt.plot([current_x, current_x], [current_y, next_y],'k') last= current_x i+= 1plt.xlabel('t')plt.ylabel('ECDF(t)')plt.title('经验分布函数(ECDF)')plt.grid(True)plt.show()4.优化代码(简洁版)以下是更简洁的实现方式,直接利用样本的排序特性:
plt.figure(figsize=(6, 4))sorted_data= np.sort(data)#确保数据已排序y= np.arange(1, len(data)+ 1)/ len(data)#绘制阶梯图plt.step(sorted_data, y, where='post', color='k')plt.xlabel('t')plt.ylabel('ECDF(t)')plt.title('经验分布函数(ECDF)')plt.grid(True)plt.show()关键点说明重复值处理:经验分布函数在重复值处保持水平线,直到最后一个重复值后才上升。阶梯图:使用plt.step的where='post'参数可以自动处理重复值,生成正确的阶梯状ECDF。起始和结束点:通过扩展x轴范围(如min(data)-1到max(data)+1),使图形更完整。示例输出
总结排序数据:确保样本数据已排序。计算ECDF值:每个数据点的ECDF值为其排名除以样本量。绘制阶梯图:使用plt.step或手动绘制水平和垂直线,正确处理重复值。这种方法能够准确反映样本数据的分布特征,适用于统计分析中的可视化需求。
python matplotlib数据作图
1、使用numpy生成一个长度为100的等差数列作为自变量,命名为x,分别使用三角函数sinx和cosx**2生成2个因变量,命名为y和z。
2、设置画布的尺寸大小和图形颜色、线条宽度、线条类型、图形标签等。
3、通过plt.figure(figsize=(10,6))设计一个10*6的画布。
4、尝试plt.plot(x,y,color='red',linewidth=2,label='$\sinx$')和plt.plot(x,z,'b--',label='$\cosx^2$')。
5、分别通过plt.xlabel('T')和plt.ylabel('V')设置X和Y轴的轴标签;通过plt.title('V changes by T')为图形设置标题。
6、y[:,0]=y[:,0]*888表示修改第一个数据,扩大888倍;后面沿用上面设置不变,发现另一条线几乎成为一条直线。
Python作图程序
实战小程序:画出y=x^3的散点图
样例代码如下:
[python]view plaincopy
#coding=utf-8
importpylabasy#引入pylab模块
x=y.np.linspace(-10,10,100)#设置x横坐标范围和点数
y.plot(x,x*x*x,'or')#生成图像
ax=y.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
ax.set_yticks([-1000,-500,500,1000])
y.xlim(x.min(),x.max())#将横坐标设置为x的最大值和最小值
y.show()#显示图像
[python]view plaincopy
importpylabasy
程序中引入的pylab属于matplotlib的一个模块,将其名字用y代替,其中包括了许多NumPy和pyplot模块中常用的函数,方便用户快速进行计算和绘图,十分适合在IPython交互式环境中使用。
[python]view plaincopy
y.np.linspace(-10,10,100)
此为numpy中的一个函数,返回的是等间距的值,numpy.linspace(a,b,c):a指的是开始位置,b表示的是结束位置,c表示产生点的个数(默认为50)举例:
[python]view plaincopy
>>>np.linspace(2.0,3.0,num=5)
array([2.,2.25,2.5,2.75,3.])
[python]view plaincopy
y.plot(x,x*x*x,'or')#生成图像
后面加上‘o'表示为散点图'r'可设置颜色为红色,基本上和matlab的操作很像。
[python]view plaincopy
y.xlim(x.min(),x.max())
这条语句使用了xlim函数,将横坐标设置为x的大小
文章到此结束,如果本次分享的plot函数python和python图形化编程软件的问题解决了您的问题,那么我们由衷的感到高兴!