概述
不能直接写出函数的表达式 怎么在python里画函数图象呢?
不写出y=f(x)这样的表达式,由隐函数的等式直接绘制图像,以x²+y²+xy=1的图像为例,使用sympy间接调用matplotlib工具的代码和该二次曲线图像如下(注意python里的乘幂符号是**而不是^,还有,python的sympy工具箱的等式不是a==b,而是a-b或者Eq(a,b),这几点和matlab的区别很大)直接在命令提示行的里面运行代码的效果from sympy import *;x,y=symbols('x y');plotting.plot_implicit(x**2+y**2+x*y-1);。
谷歌人工智能写作项目:小发猫
turtle库中画直线用什么函数
()Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形typescript设置超时时间。
用python 画一个网格
print 函数是输出字符串,所以用 print 输出形成的 grid 其实质是具有某特定形状的 字符串 ,而 () 绘制出的网格是 图片。
字符串 是可以用文字处理软件(如 word、记事本等)直接编辑处理的,而 图片 则只能用图片编辑软件(如画笔)打开处理。
如问题所要求的最简单的“编写一个能画出如下网格(grid)的函数”代码,可以简单的用 print 函数就可以了:代码执行效果:
python绘制函数图像
raw_input获取的输入是字符串,不能直接用np.array,需要用split进行切分,然后强制转化成数值类型,才能用plot函数我把你的代码稍微修改了一下,可能不太漂亮,不过能运行了x=[1,2,3]a = raw_input('function>>>')a = a.split(' ')#依空格对字符串a进行切分,如果是用逗号分隔,则改成a.split(',')b = []for i in range(len(a)):#把切分好的字符强制转化成int类型,如果是小数,将int改为float b.append(int(a[i]))(x, b, label='x', color="green", linewidth=1)。
python 怎么画与其他方法进行比较的ROC曲线?
使用sklearn的一系列方法后可以很方便的绘制处ROC曲线,这里简单实现以下。
主要是利用混淆矩阵中的知识作为绘制的数据(如果不是很懂可以先看看这里的基础): tpr(Ture Positive Rate):真阳率 图像的纵坐标 fpr(False Positive Rate):阳率(伪阳率) 图像的横坐标 mean_tpr:累计真阳率求平均值 mean_fpr:累计阳率求平均值import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svm, datasetsfrom sklearn.metrics import roc_curve, aucfrom sklearn.model_selection import StratifiedKFoldiris = datasets.load_iris()X = y = iris.targetX, y = X[y != 2], y[y != 2] # 去掉了label为2,label只能二分,才可以。
n_samples, n_features = X.shape# 增加噪声特征random_state = np.random.RandomState(0)X = np.c_[X, random_state.randn(n_samples, 200 * n_features)]cv = StratifiedKFold(n_splits=6) #导入该模型,后面将数据划分6份classifier = (kernel='linear', probability=True,random_state=random_state) # SVC模型 可以换作AdaBoost模型试试# 画平均ROC曲线的两个参数mean_tpr = 0.0 # 用来记录画平均ROC曲线的信息mean_fpr = np.linspace(0, 1, 100)cnt = 0for i, (train, test) in enumerate(cv.split(X,y)): #利用模型划分数据集和目标变量 为一一对应的下标 cnt +=1 probas_ = (X[train], y[train]).predict_proba(X[test]) # 训练模型后预测每条样本得到两种结果的概率 fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1]) # 该函数得到伪正例、真正例、阈值,这里只使用前两个 mean_tpr += np.interp(mean_fpr, fpr, tpr) # 插值函数 interp(x坐标,每次x增加距离,y坐标) 累计每次循环的总值后面求平均值 mean_tpr[0] = 0.0 # 将第一个真正例=0 以0为起点 roc_auc = auc(fpr, tpr) # 求auc面积 (fpr, tpr, lw=1, label='ROC fold {0:.2f} (area = {1:.2f})'.format(i, roc_auc)) # 画出当前分割数据的ROC曲线([0, 1], [0, 1], '--', color=(0.6, 0.6, 0.6), label='Luck') # 画对角线mean_tpr /= cnt # 求数组的平均值mean_tpr[-1] = 1.0 # 坐标最后一个点为(1,1) 以1为终点mean_auc = auc(mean_fpr, mean_tpr)(mean_fpr, mean_tpr, 'k--',label='Mean ROC (area = {0:.2f})'.format(mean_auc), lw=2)([-0.05, 1.05]) # 设置x、y轴的上下限,设置宽一点,以免和边缘重合,可以更好的观察图像的整体([-0.05, 1.05])plt.xlabel('False Positive Rate')plt.ylabel('True Positive Rate') # 可以使用中文,但需要导入一些库即字体plt.title('Receiver operating characteristic example')plt.legend(loc="lower right")()。
如何用python绘制简单条形图?
如何用python绘制简单条形图呢?这里离不开matplotlib的使用。
条形图是数据可视化图形中很基础也很常用的一种图,简单解释下:条形图也叫长条图(英语:bar chart),亦称条图(英语:bar graph)、条状图、棒形图、柱状图、条形图表,是一种以长方形的长度为变量的统计图表。
长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。长条图亦可横向排列,或用多维方式表达。那么一个普通的条形图是长什么样子的呢?当!当!当!
就是下图的这个样子:图先亮出来啦,接下来研究这个图是怎么画的吧,先看一下原数据长什么样子:实际画图的流程和画折线图很相近,只是用到的画图函数不一样,绘制条形图的函数():由于这只是最简单的一个条形图,实际上条形图的函数()还有不少可以探索的参数设置,和对折线图函数()的探索差不多,有兴趣的孩子可以自己去进行探索哦。
按照条形长短进行排序展示的条形图当然也可以有其他的设置,比如说上图中的线条高低参差不齐,这是因为x轴的数据是按照学校名称进行排序的,那么可不可以按照分数的高低进行排序呢?
也就是让所有的长方形按照从高到矮或者从矮到高的顺序进行排列?当然可以啦!这里需要强调的是,条的高低排列等信息都是来源于原数据的,要想让条形的顺序发生改变,需要对画图的来源数据进行更改呢!
把原数据逆序排序后截取前十名数据赋值给data_yuwen,作为新的数据源传入画图函数(),画出来的图自然就不一样了。
先看一眼数据长什么样子:根据这个数据源绘制出的图形如下,由于用来画图的数据进行了降序排序操作,所以生成条形图的条也会进行降序排序展示:很多时候,我们常见的条形图还有另一种展现形式,那就是横向的条形图,比较火的那种动态条形图绝大多数也都是横向的条形图,那么横向的条形图如何绘制呢?
理解()主要参数其实也不难,只要清楚()函数中主要参数的作用就可以了!条形图函数中有五个主要参数,分别是x,height,width,bottom,orientation。
其中x控制的是每个条在x轴上位置,height控制的是每个条的长度,width控制的是每个条的宽度,bottom控制的是每个条在y轴方向的起始位置,orientation控制的是条形的方向,是纵向还是横向,默认是纵向的。
通过一个小例子理解下这几个参数的作用:上边的几行代码输出的图形如下:对比着代码和实际输出的条形图,各个主要参数的作用是不是一目了然啦?
横向条形图理解了这几个参数作用后,纵向的条形图转换成横向的条形图就没什么难度了!
需要设置所有条形在x轴的位置都为0,也就全部从最左侧开始画条形;由于是横向条形图,所以实际上条的宽度显示的是数据大小,将width参数设置成原数据中的语文成绩;bottom控制每个条在y轴方向的起始位置,设置bottom=range(10)设置每个条形在y轴的起始位置各不相同避免有条形重叠;height控制的是每个条在y轴方向上的长度,条形图横向设置后,在y轴上的长度失去了衡量数据的意义,所以直接设置一个常数即可;最后设置条形的方向为横向,即orientation=“horizontal”。
温馨提示:数据和标签一定要匹配,即()重点的数据要和plt.yticks()中提取出来的标签一一对应,一旦不匹配,整个图展现的结果就是一个错误的结果!
上述代码生成的条形图如下:感觉上边这种生成横向条形图的方式有点点绕,和人们的习惯认知有点不大一样,难道画一个横向条形图就非得转变自己的习惯认知这么反人类吗?
当然不是的,实际上有更简单的方法绘制一个横向条形图,之所以没有一开始就直接用这种简单的方法,也是为了让大家体会下条形图参数的灵活设置而已,而且如果比较绕的方法都能理解了,简单的方法理解和运用起来就更没有难度了啊!
不卖关子了,我们来认识下和()函数类似的()函数。
()函数是专门绘制水平条形图的函数,主要的参数有:y 控制y轴显示的标签来源width 控制横向条形的长度,即用来进行对比的数据源height 条形的宽度需要设置的参数主要就是这三个,比用()函数绘制水平条形图简单了很多,具体代码如下:效果图:和用()函数绘制的横向条形图一毛一样对不对?
以后有需求绘制横向条形图,尽量用()函数吧,毕竟它是专门绘制这种类型图的,简单好用。
然而实际工作中对于条形图的需求不只是这些,比如例子中只是对各个学校语文成绩的展示,有时候需要各个学科的成绩同时展现在一幅条形图中,有时候也需要绘制堆积条形图对各学科的成绩以及总成绩进行展示,这些图又该如何绘制呢?
其实只要理解了各个参数的含义,绘制这些图也不在话下,至于具体怎么画,且看下回分解啊!
相关链接:
1、nuxt和vue开发有什么区别,有必要使用nuxt框架吗
2、训练神经网络的详细步骤,提高神经网络训练速度
3、支持vue3的组件库,vue3使用vue2组件
4、vue局部组件和全局组件,支持vue3的组件库
5、vue3模板编译原理,前端vue框架模板
最后
以上就是健壮冰棍为你收集整理的如何用python画函数曲线,python画线函数是什么的全部内容,希望文章能够帮你解决如何用python画函数曲线,python画线函数是什么所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复