更多机器学习知识请查收于: https://blog.csdn.net/weixin_45316122/article/details/109854595
Trick:纯demo,心在哪里,结果就在那里
# -*- coding: utf-8 -*- # Author : szy # Create Date : 2019/10/17 # 如果是Mac笔记本需要在开头加上下面两行,才会绘图的时候弹出来窗口 # 如果是Windows系统,下面两行不用加 # import matplotlib # matplotlib.use("TkAgg") import matplotlib.pyplot as plt import numpy as np # 我们可以通过传入多个list,即传入多个点,默认会自动连成线 # plot函数第一个参数传的是X轴,第二个参数传的是Y轴,说明plot是绘制2D # plt.plot([0, 1, 2], [1, 2, 4]) # 当我们只给plot函数传一个参数的时候,默认把传的值当作Y轴来画图 # x = np.linspace(0, 10, 100) # print(x) # print(len(x)) # plt.plot(x) # 新开一个画布 ##窗口加入名称 # plt.figure('sine wave') # ##np.linspace 表示0-10随机产生100个数 # x = np.linspace(0, 10, 100) # plt.plot(x, np.sin(x)) # plt.plot(x, np.cos(x)) import random "----------------------------------------------------------" # 分别生成两张图来画 # x = np.linspace(0, 10, 100) # fig1 = plt.figure('sine wave') # plt.plot(x, np.sin(x)) # # 保存图像到本地磁盘 # plt.savefig('sine wave') # # fig2 = plt.figure('cosine wave') # plt.plot(x, np.cos(x)) # plt.savefig('cosine wave') "-----------------------------------------------------------" #方式1 # # 可以在一个画布里面去画多张子图 # x = np.linspace(0, 10, 100) # # 让原有画布变成2行2列,可以画4张子图的画布,最后一个数代表是在那里画 # plt.subplot(2, 2, 2) # #x象限 限制在(20,-5),注意这里是个反的,可以通过坐标调 # plt.xlim(20, -5) # plt.ylim(-1.5, 1.5) # plt.ylabel('sin') # plt.plot(x, np.sin(x)) #方式2 # plt.subplot(2, 2, 2) # # 直接用axis定义画图的x轴和y轴的范围 # plt.axis([-5, 20, -1.5, 1.5]) # plt.ylabel('cos') # plt.plot(x, np.cos(x)) "-----------------------------------------------" #https://www.cnblogs.com/harrymore/p/9376860.html 使用matplotlib画双纵轴坐标 "------------------------------------------------" # 画不同种类、不同颜色的图 # x = np.linspace(0, 10, 100) # # 为了让同一张图里面的线不重叠,分别Y轴加了0到4 # plt.plot(x, x+0, '-g', label='-g') # “-”实线、“g”绿色,label配合legend使用 # plt.plot(x, x+1, '--c', label='--c') # 虚线、浅蓝色 # plt.plot(x, x+2, '-.k', label='-.k') # 点划线、黑色 # plt.plot(x, x+3, '-r', label='-r') # 实线、红色 # plt.plot(x, x+4, 'o', label='o') # 圈、默认就是蓝色 # plt.plot(x, x+5, 'xy', label='xy') # 叉子、黄色 # plt.plot(x, x+6, 'dy', label='dy') # 钻石、黄色 # # 加上图例, 加上一点效果,loc='lower right'位置防止挡住,fancybox边框,framealpha边框透明度,shadow阴影,borderpad边框宽度 # plt.legend(loc='lower right', fancybox=True, framealpha=1, shadow=True, borderpad=1) "------------------------------------------------" # 画散点图scatter # x = np.linspace(0, 10, 100) # plt.subplot(1, 2, 1) # plt.plot(x, np.sin(x), 'o') # plt.subplot(1, 2, 2) # plt.scatter(x, np.sin(x)) # plot画图速度是优于scatter的!scatter是一个点一个点去处理的! # scatter里面的一些有意思的参数,scatter画散点图可以每个点有一个独立的参数,但是系统开销会变大 "------------------------------------------------" #seed每次出来的数据和第一次运算的数据一样,同一次随机种子的x,y数据不一样 # np.random.seed(42) # x = np.random.rand(100) # y = np.random.rand(100) # # 随机出来100种颜色,去对应上面100个点 # colors = np.random.rand(100) # # 画10种不同大小的点 # sizes = 1000 * np.random.rand(10) # plt.scatter(x, y, c=colors, s=sizes, alpha=0.7) "------------------------------------------------" # 画等高线图contour ,3个维度的表达,loss损失 # x_ = np.linspace(-20, 20, 100) # y_ = np.linspace(-20, 20, 100) # # # np.cbrt是开立方根,ML角度来看便是loss损失 # def f(x, y): # return x**2 + (y - np.cbrt(x**2))**2 # # #meshgrid 编制网,比较密的栅格 # X, Y = np.meshgrid(x_, y_) # Z = f(X, Y) # plt.contour(X, Y, Z) "------------------------------------------------" plt.show() items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] print (random.shuffle(items))