IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> jupyter、matplotlib、Linux常见问题和设置记录 -> 正文阅读

[开发工具]jupyter、matplotlib、Linux常见问题和设置记录

常见问题和设置记录

1.jupyterlab问题

1.1 jupyter-lab修改工作目录

1.2 jupyter-lab 多行输出(单个cell)

2.matplotlib常用设置问题

? 2.1 matplotlib 作图中文显示和负号显示乱码问题

? 2.2 matplotlib 工作中常用绘图,及其常用设置(坐标轴(名称、刻度、显示)、水平线、子图(间距)、标题(子图标题、总标题)、画布大小,3D图、动画等)

3.linux工作中常用命令记录

4.待定

  1. jupyter问题

    1. jupyter-lab修改工作目录

      命令行下输入>>:jupyter-lab  --generate-config
      
      默认在” C:\Users\用户名\.jupyter“自动生成"jupyter_lab_config.py"配置文件
      
      修改配置文件root_dir即可切换工作目录
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MTyIBMTs-1655737121752)(D:\appData\My_respority\markdown_image\image-20220606165411742.png)]

    2. jupyter-lab 多行输出(单个cell)

      在电脑用户路径下”C:\Users\用户名\.ipython\profile_default”
      创建ipython_config.py配置文件
      写入
      c = get_config()
      c.InteractiveShell.ast_node_interactivity = 'all'
      重启juputer-lab即可多行显示
      

    ?

  2. matplotlib常用设置问题

    1. matplotlib 作图中文显示和负号显示乱码问题

      • 拷贝字体文件到mat库指定路径下

        win系统下从路径’C:\Windows\Fonts’下拷贝字体文件(黑体就行)

        将拷贝字体文件放到“xxx\python3.9\Lib\site-packages\matplotlib\mpl-data\fonts\ttf”下

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N5DdRa5c-1655737121754)(D:\appData\My_respority\markdown_image\image-20220606163506124.png)]

      • 修改mat配置文件(重新启动python内核)

      ? 在路径“ xxx\python3.9\Lib\site-packages\matplotlib\mpl-data”下打开matplotlibrc文件(可以使用NodePad++)

      1. 解开’font.family’注释,使用 sans-serif 系列字体
      2. 解开"font.sans-serif"注释,在 sans-serif 系列字体前加上 “simhei”(或其它放入’xx/ttf/'路径内的字体)
      3. 解开"axes.unicode_minus"注释,并设置“axes.unicode_minus:False ”

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7e35y6n9-1655737121755)(D:\appData\My_respority\markdown_image\image-20220607095306267.png)]

    2. matplotlib 工作中常用绘图,及其常用设置(坐标轴(名称、刻度、显示)、水平线、子图(间距)、标题(子图标题、总标题)、画布大小,3D图、动画等)

      1. 双系列柱状图(用于系列对比/趋势变化)

        import matplotlib.pyplot as plt
        from mpl_toolkits.mplot3d import Axes3D
        from matplotlib import animation
        
        from sklearn.datasets import make_biclusters
        from sklearn.cluster import KMeans
        from sklearn.metrics import silhouette_samples
        from sklearn.metrics import silhouette_score
        
        import numpy as np
        import pandas as pd
        import random
        
        # 1.双系列柱状图(用于系列对比/趋势变化)
        x = ['测试1','测试2','xxxx3']
        y1 = [1,2,3]
        y2 = [4,5,6]
        
        plt.figure(figsize=(8,4))
        plt.bar(x=x,height=y1,width=-0.4,align='edge',label='y1') # 调整柱子位置
        plt.bar(x=x,height=y2,width=0.4,align='edge',label='y2')
        # 设置刻度标签名
        plt.yticks(ticks=[0,1,2,3,4,5,6],labels=['刻度0','刻度1','刻度2','刻度3','刻度4','刻度5','刻度6'])
        plt.xticks(rotation=45) # 调整x轴刻度标签转向
        plt.legend()
        

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BYS24Mj7-1655737121756)(D:\appData\My_respority\markdown_image\image-20220620225439014.png)]

      2. 三维图绘制(展示数据空间分布,可用于PCA降维后查看数据分布)

        # 2.三维图绘制(展示数据空间分布,可用于PCA降维后查看数据分布)
        plt.figure(figsize=(12,5))
        
        a = np.linspace(-5,5,num=110)
        b = np.linspace(-5,5,num=110)
        x,y = np.meshgrid(a,b)
        L1 = np.abs(x)+np.abs(y)
        L2 = np.sqrt(np.square(x)+np.square(y))
        
        # 设置子图1
        ax = plt.subplot(1,2,1,projection='3d')
        ax.plot_surface(x,y,L1,cmap='Reds') # 绘制表面
        ax.plot_surface(x,y,L2,cmap='Greys') 
        # ax.contourf(x,y,l1,cmap='Reds') # 绘制3d等高线
        l1_pos = plt.Rectangle((0,0),1,1,fc='r') # 设置3维图例
        l2_pos = plt.Rectangle((0,0),1,1,fc='dimgray')
        ax.legend([l1_pos,l2_pos],['L1正则','L2正则'])
        
        
        # 设置子图2
        ax1 = plt.subplot(1,2,2,projection='3d')
        a1 = np.linspace(-5,5,num=10)
        b1 = np.linspace(-5,5,num=10)
        x1,y1 = np.meshgrid(a1,b1)
        c1 = np.abs(x1)+np.abs(y1)
        c2 = np.sqrt(np.square(x1)+np.square(y1))
        ax1.scatter3D(xs=x1,ys=y1,zs=c1,label='数据1')
        ax1.scatter3D(xs=x1,ys=y1,zs=c2,label='数据2')
        ax1.legend()
        ax1.view_init(elev=60,azim=30) # 调整3维图像显示角度
        

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gOBqo5n3-1655737121756)(D:\appData\My_respority\markdown_image\image-20220620225500969.png)]

      3. 小提琴图(显示一组数据分布,机器学习二分类任务,各个特征分布对比)

        # 3.小提琴图(显示一组数据分布,机器学习二分类任务,各个特征分布对比)
        fig,axs = plt.subplots(nrows=1,ncols=3)
        fig.set_size_inches(15,5) # 修改画布尺寸(单位:英寸)
        fig.subplots_adjust(wspace=0.5) # 调整子图间距
        
        test_data = pd.DataFrame({'feature1':random.choices(range(10,30),k=100)
                                  ,'feature2':random.choices(range(10,30),k=100)
                                  ,'feature3':random.choices(range(10,30),k=100)
                                  ,'label':[0 for i in range(100)]}).append(
                                  pd.DataFrame({'feature1':random.choices(range(25,45),k=100)
                                  ,'feature2':random.choices(range(25,45),k=100)
                                  ,'feature3':random.choices(range(25,45),k=100)
                                  ,'label':[1 for i in range(100)]}))
        for i in range(3):
            axs[i].violinplot(test_data.loc[test_data['label']==0,'feature'+str(i+1)],positions=[-2],widths=2,showmeans=True,showextrema=False)
            axs[i].violinplot(test_data.loc[test_data['label']==1,'feature'+str(i+1)],positions=[2],widths=2,showmeans=True,showextrema=False)
            axs[i].set_title('feature'+str(i+1))
            axs[i].set_xlabel(xlabel='0类特征                   1类特征') # 设置坐标轴标签名称
        

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CaZ8mevA-1655737121757)(D:\appData\My_respority\markdown_image\image-20220620225521903.png)]

      4. 填充图或面积图(聚类分析时,可查看聚类效果)

        # 4. 填充图或面积图(聚类分析时,可查看聚类效果)
        
        dataset_test = make_biclusters(shape=(1000,3),n_clusters=3,noise=0.1,minval=0,maxval=1,random_state=42)[0]
        # 测试数据展示
        fig = plt.figure(figsize=(12,5))
        ax = fig.add_subplot(projection='3d') # 添加3d坐标系
        ax.scatter(xs=dataset_test[:,0],ys=dataset_test[:,1],zs=dataset_test[:,2])
        
        # 聚类效果函数
        def make_clusters_effect(n_clusters=3):
            kmeans = KMeans(n_clusters=n_clusters)
            kmeans = kmeans.fit(X=dataset_test)
            res = kmeans.predict(dataset_test)
            silhouette_mean = silhouette_score(X=dataset_test,labels=res) # 总体轮廓系数(或整体轮廓系数平均值)
            silhouette_per = silhouette_samples(X=dataset_test,labels=res) # 每个样本轮廓系数
            
            fig = plt.figure(figsize=(12,5))
            # 绘制子图1
            plt.subplot(1,2,1)
            init_y = 0
            plt.xlim(-0.2,1) # 设置x轴刻度范围
            for i in range(n_clusters):
                plt.fill_betweenx(y=range(init_y,init_y+len(silhouette_per[res==i])),x1=sorted(silhouette_per[res==i]))
                plt.text(x=-0.1,y=(2*init_y+len(silhouette_per[res==i]))/2,s=f'{i}类')
                init_y = init_y+len(silhouette_per[res==i])+10
            plt.vlines(x=silhouette_mean,ymin=0,ymax=1000,label='总轮廓系数',colors='r') # 设置水平线
            plt.legend()
            # 绘制子图2
            ax = plt.subplot(1,2,2,projection='3d')
            for i in range(n_clusters):
                ax.scatter(xs=dataset_test[res==i,0],ys=dataset_test[res==i,1],zs=dataset_test[res==i,2],label=f'{i}类')
            ax.legend()
            fig.suptitle(f'聚类为{n_clusters}类效果图') # 设置所有子图总标题
            
        # 分别查看聚类为3~5 的聚类效果
        for i in range(3,6):
            make_clusters_effect(i)    
        

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n6cnUMbN-1655737121757)(D:\appData\My_respority\markdown_image\image-20220620225614383.png)]

      5. 动态图(git保存,可以动态实时查看深度学习目标函数损失情况)

        # 5. 动态图(git保存,可以动态实时查看深度学习目标函数损失情况
        
        fig,axs = plt.subplots(1,2)
        # fig.set_size_inches(w=12,h=8)
        
        x = np.arange(0,2*np.pi,0.01)
        
        line1,=axs[0].plot(x,np.sin(x),c='C2');line2,=axs[1].plot(x,np.cos(x),c='C2')
        # 图像初始化函数
        def init():
            axs[0].set_title('sin_images');axs[1].set_title('cos_images') # 设置子图标题
            axs[0].set_xlim((0,10));axs[1].set_xlim((0,10)) # 设置x轴刻度范围
            # axs[0].axis('off');axs[1].axis('off') # 取消坐标轴
            # axs[0].set_xticks(range(1,11));axs[1].set_xticks(range(1,11)) # 设置刻度值
            
        # 动态更新函数 
        def update(i):
            global x
            x+=i
            line1.set_ydata(np.sin(x)) # line1.set_ydata(y1) # 修改x轴,y轴数据
            line2.set_ydata(np.cos(x))
            
        ani = animation.FuncAnimation(fig=fig,func=update,
                                      frames=np.linspace(0,1),
                                      init_func=init,interval=200
                                     )
        
        # 将动态图保存为.gif
        ani.save('./test.gif',writer='pillow')
        

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hYCDw2MG-1655737121757)(D:\appData\My_respority\markdown_image\test.gif)]

  3. linux工作中常用命令记录

    1. ssh免密登录

      # 密钥生成
      ssh-keygen
      
      # 密钥分发
      ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop01
      ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop02
      
      # 验证免密登录
      ssh hadoop02
      
    2. 用户设置(一般用不到)

      ## 用户文件
      #1. /etc/passwd --管理用户UID/GID重要参数
         root : x : 0 : 0 : root : /root : /bin/bash
         用户名称:密码:UserID:GroupID:用户说明:主文件:shell
      #2. /etc/shadow --管理用户密码(通过UID记录相应密码)
      #3. /etc/group  --管理用户组相关信息(通过GID关联相应组信息)
         root : x : 0 : root
         用户组:用户组密码:GID:用户组包含账号名称
      #4. /etc/gshadow --管理用户组管理员相关信息
      
      ## 新增用户
         > useradd [options] [username] #(根据默认文件生成用户,但不会在/home生成同名账号目录,利      用passwd设置密码,没有密码不能登录)
      
         > passwd [options] [username] # 设置用户密码
      
         > adduser [options] [username] # (相当与useradd的封装,能自动生成用户目录,还得需要          passwd设置密码)
      
      ## 删除用户
         > userdel 同理
      
         > deluser
         
      ## 用户权限
      # root用户下下
      chmod +w /etc/sudoers # 增加写权限
      vim  /etc/sudoers # 增加sudo用户
      '''
      hadoop ALL=(ALL) NOPASSWD: ALL # 无密码使用sudo
      '''
      
    3. 磁盘、端口、系统资源查看问题

    4. 文件读写问题

      1. 重定向问题
    5. 配置文件

    6. 其它

  4. 待定

  开发工具 最新文章
2021年12月电子学会图形化三级编程题解析含
Hexo历险记之二多系统安装Node
Python技巧:双击python文件打开.py(博主自
shell
C++基础(Visual studio)
git忽略不想提交的文件
idea中svn的更新、检出、提交操作
Python深度学习入门笔记(一):使用Pandas
JDK1.8
子仓库代码同步问题整理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:17:52  更:2022-06-29 19:19:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
360图书馆 购物 三丰科技 阅读网 日历 万年历 2022年8日历 -2022/8/8 0:52:07-
图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码