精华内容
下载资源
问答
  • Python读取excel文件中的数据,绘制折线图散点图

    千次阅读 多人点赞 2020-09-29 23:36:19
    目的:读取excel文件中的数据,绘制折线图散点图 安装环境: 由于我使用的是Anaconda 集成的环境 所以不用安装模块,直接导入就行 import pandas as pd import matplotlib.pyplot as plt 绘制简单折线 ...

    https://www.cnblogs.com/liulinghua90/p/9935642.html

    https://blog.csdn.net/qq_32458499/article/details/78189106

    目的:读取excel文件中的数据,绘制折线图、散点图

    安装环境:

    由于我使用的是 Anaconda 集成的环境 所以不用安装模块,直接导入就行

    import pandas as pd
    import matplotlib.pyplot as plt

    绘制简单折线

    •  pandas操作Excel表单

      数据准备,有一个Excel文件:lemon.xlsx有两个表单,表单名分别为:Python 以及student,

    Python的表单数据如下所示:

     

    student的表单数据如下所示:

     1:在利用pandas模块进行操作前,可以先引入这个模块,如下:

    import pandas as pd

     2:读取Excel文件的两种方式:

    #方法一:默认读取第一个表单
    df=pd.read_excel('lemon.xlsx')#这个会直接默认读取到这个Excel的第一个表单
    data=df.head()#默认读取前5行的数据
    print("获取到所有的值:\n{0}".format(data))#格式化输出

    得到的结果是一个二维矩阵,如下所示:

    #方法二:通过指定表单名的方式来读取
    df=pd.read_excel('lemon.xlsx',sheet_name='student')#可以通过sheet_name来指定读取的表单
    data=df.head()#默认读取前5行的数据
    print("获取到所有的值:\n{0}".format(data))#格式化输出

    得到的结果如下所示,也是一个二维矩阵:

    #方法三:通过表单索引来指定要访问的表单,0表示第一个表单
    #也可以采用表单名和索引的双重方式来定位表单
    #也可以同时定位多个表单,方式都罗列如下所示
    df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#可以通过表单名同时指定多个
    # df=pd.read_excel('lemon.xlsx',sheet_name=0)#可以通过表单索引来指定读取的表单
    # df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#可以混合的方式来指定
    # df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#可以通过索引 同时指定多个
    data=df.values#获取所有的数据,注意这里不能用head()方法哦~
    print("获取到所有的值:\n{0}".format(data))#格式化输出

    pandas操作Excel的行列

    1:读取指定的单行,数据会存在列表里面

    #1:读取指定行
    df=pd.read_excel('lemon.xlsx')#这个会直接默认读取到这个Excel的第一个表单
    data=df.ix[0].values#0表示第一行 这里读取数据并不包含表头,要注意哦!
    print("读取指定行的数据:\n{0}".format(data))

    得到的结果如下所示:

    2:读取指定的多行,数据会存在嵌套的列表里面:

    df=pd.read_excel('lemon.xlsx')
    data=df.ix[[1,2]].values#读取指定多行的话,就要在ix[]里面嵌套列表指定行数
    print("读取指定行的数据:\n{0}".format(data))

    3:读取指定的行列:

    df=pd.read_excel('lemon.xlsx')
    data=df.ix[1,2]#读取第一行第二列的值,这里不需要嵌套列表
    print("读取指定行的数据:\n{0}".format(data))

    4:读取指定的多行多列值:

    df=pd.read_excel('lemon.xlsx')
    data=df.ix[[1,2],['title','data']].values#读取第一行第二行的title以及data列的值,这里需要嵌套列表
    print("读取指定行的数据:\n{0}".format(data))

    5:获取所有行的指定列

    df=pd.read_excel('lemon.xlsx')
    data=df.ix[:,['title','data']].values#读所有行的title以及data列的值,这里需要嵌套列表
    print("读取指定行的数据:\n{0}".format(data))

    6:获取行号并打印输出

    df=pd.read_excel('lemon.xlsx')
    print("输出行号列表",df.index.values)
    
    输出结果是:
    输出行号列表 [0 1 2 3]

    7:获取列名并打印输出

    df=pd.read_excel('lemon.xlsx')
    print("输出列标题",df.columns.values)
    
    运行结果如下所示:
    输出列标题 ['case_id' 'title' 'data']

    8:获取指定行数的值:

    df=pd.read_excel('lemon.xlsx')
    print("输出值",df.sample(3).values)#这个方法类似于head()方法以及df.values方法
    
    输出值
     [[2 '输入错误的密码' '{"mobilephone":"18688773467","pwd":"12345678"}']
     [3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}']
     [1 '正常登录' '{"mobilephone":"18688773467","pwd":"123456"}']]
    

    9:获取指定列的值:

    df=pd.read_excel('lemon.xlsx')
    print("输出值\n",df['data'].values)

    pandas处理Excel数据成为字典

     我们有这样的数据,,处理成列表嵌套字典,且字典的key为表头名。

    实现的代码如下所示:

    df=pd.read_excel('lemon.xlsx')
    test_data=[]
    for i in df.index.values:#获取行号的索引,并对其进行遍历:
        #根据i来获取每一行指定的数据 并利用to_dict转成字典
        row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()
        test_data.append(row_data)
    print("最终获取到的数据是:{0}".format(test_data))
    

    最后得到的结果是:

    最终获取到的数据是:
    [{'title': '正常登录', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'}, 
    {'title': '输入错误的密码', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'}, 
    {'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, 
    {'title': '充值输入负数', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

    1、绘制简单折线图

    所用数据

    # -*- coding: utf-8 -*-
    """
    Created on Tue Sep 29 18:24:14 2020
    
    @author: chenj
    """
    # 导入 pandas 和 matplotlib
    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 读取文件
    # =============================================================================
    # 可能遇到的问题 路径分隔符 建议用“/”或“\\”  读取桌面文件时 用“\”可能会失败 
    # =============================================================================
    data_source = pd.read_excel('F:/南师2020作业/人工智能/datas.xlsx')
    # 函数plot()尝试根据数字绘制出有意义的图形
    print(data_source['datas'])
    plt.plot(data_source['datas'])
    

    2、绘制简单散点图

    使用scatter绘制散点图并设置其样式

    1)绘制单个点,使用函数scatter,并向它传递x,y坐标,并可使用参数s指定点的大小

    plt.scatter(2,4,s=20)
    2)绘制一系列点,向scatter传递两个分别包含x值和y值的列表

    x_values=[1,2,3,4,5]
    y_values=[1,4,9,16,25]
    plt.scatter(x_values,y_values,s=20)

    3)设置坐标轴的取值范围:函数axis()要求提供四个值,x,y坐标轴的最大值和最小值

    plt.axis([0,1100,0,1100000])

    4)使用参数edgecolor在函数scatter中设置数据点的轮廓

    plt.scatter(x_values,y_values,edgecolor='black',s=20)

    当参数值为'none'时不使用轮廓

    5)向scatter传递参数c,指定要使用的颜色

    可使用颜色名称,或者使用RGB颜色模式自定义颜色,元组中包含三个0~1之间的小数值,分别表示红绿蓝颜色分量。

    plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolor='none',s=20)为由浅蓝色组成的散点图
    6)使用颜色映射
    颜色映射是一系列颜色,它们从起始颜色渐变到结束颜色,在可视化中颜色映射用于突出数据的规律。
    例如,可用较浅的颜色表示较小的数值,较深的颜色表示较大的数值。
    模块pyplot内置了一组颜色映射,要使用颜色映射,需要告诉pyplot如何设置数据集中每个点的颜色。

    plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=40)
    plt.title("Square numbers",fontsize=24)

    我们将参数c设置成了一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射。这些代 
    码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色。
    7)自动保存图表:使用函数plt.savefig()

    plt.savefig('D:/www/figure.png',bbox_inches='tight')

    第一个参数是文件名,第二个参数指定将图表多余的空白区域减掉,如果要保留图表周围多余的空白区域,可省略这个实参。


    8)设置绘图窗口尺寸
    函数figure用于指定图表的宽度、高度、分辨率和背景色。

    形参figsize指定一个元组,向matplotlib指出绘图窗口的尺寸,单位为英寸。
    形参dpi向figure传递分辨率,默认为80

    plt.figure(dpi=128,figsize=(10,6))

    9)实例程序

    #a.py
    import matplotlib.pyplot as plt
    x_values=list(range(1,1001))
    y_values=[x**2 for x in x_values]
    plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=40)
    plt.title("Square numbers",fontsize=24)
    plt.xlabel("value",fontsize=24)
    plt.ylabel("Square of Value",fontsize=24)
    plt.tick_params(axis='both',labelsize=14)
    plt.axis([0,1100,0,1100000])
    plt.savefig('D:/www/figure.png',bbox_inches='tight')
    plt.show()
    # 导入 pandas 和 matplotlib
    import pandas as pd
    import matplotlib.pyplot as plt
    # 导入中文显示库函数
    from matplotlib.font_manager import FontProperties
    font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)
     
    # 读取文件
    df = pd.read_excel("F:/南师2020作业/人工智能/datas.xlsx")
    # 输出数据行数
    print("数据行数:" , len(df))
    '''
    由于只有一列数据我们使用 excel 行号作为 x 值的列表
    用range()函数来创建一个列表 [1,24)
    range()函数 遍历数字序列
    '''
    x = list(range(1,len(df)+1)) #[1,24)
    # 读取指定的单列也就是 datas列,数据会存在列表里面
    y = df['datas']
    # for 循环输出数据行数
    for a in (list(range(1,len(df)+1))):
        print('行号:'+str(a)) #将int类型的a 转换为字符串
    
    #设置 x值 和y值的列表
    plt.scatter(x,y)
    # 图表名称
    plt.title('散点图',fontproperties=font_set)
    # 设置x轴名称
    plt.xlabel("X")
    # 设置y轴名称
    plt.ylabel("Y")
    plt.show()
        
    

    展开全文
  • QTCharts入门 使用QChartView做折线图

    万次阅读 多人点赞 2018-11-15 17:22:53
    QTCharts入门 使用QChartView做折线图 引言 ---------------------------------------------------------------------------------------------------------------------- 自从Qt发布以来,给广大跨平台界面研发...

    QTCharts入门 使用QChartView做折线图

    引言

    ----------------------------------------------------------------------------------------------------------------------

          自从Qt发布以来,给广大跨平台界面研发人员带来了无数的福利。但是Qt自己却一直没有提供自带的组件库,这就使得QWT、QCustomPlot等第三方库有了巨大的生存空间,为了降低开发成本,大家都涌向了这些第三方库。这种情况一直持续到QTCharts的发布之前。QTCharts是Qt自带的组件库,包含折线、曲线、饼图、棒图、散点图、雷达图等等各种常用的图表。只是要注意协议的约束:GPLV3。

    正文

    ----------------------------------------------------------------------------------------------------------------------

          我们今天来看用QChartView来做折线图。QChartView派生自QGraphicsView,但它可专门用来展示QChart图表。

          先给大家做一下概念热身。

    坐标轴-QAbstractAxis:

          图表中,一般都有X、Y坐标轴,复杂一些的还带有Z轴。对应到QT的图表也有X、Y轴对象。但是今天,我们先不展开介绍。如果我们不创建轴坐标对应的对象,可以使用Qt的默认轴对象。后面我们会介绍用法。

    系列-QAbstractSeries:

          不论是曲线、饼图、棒图还是其他图表,其中展示的内容本质都是数据。一条曲线是一组数据,一个饼图也对应一组数据。在QT Charts中,这些一组组的数据被称作系列。对应不同类型的图表Qt提供了不同的系列。系列除了负责存储、访问数据,应该还提供了数据的绘制方法,比如折线图和曲线图分别对应QLineSerie和QSPLineSerie。我们可以用不同的系列达到不同的展示目的。

    图例-Legend:

          像Excel,QT Charts中也提供了图例,并且还可以显示或者隐藏图例。

    图表-QChart

          QT提供了QChart类来封装前面所说的内容,比如坐标轴、系列、图例等。QChart承担了一个组织、管理的角色。QChart派生自QGraphicsObject,因此它实际上是一个图元item。我们可以从QChart获取到坐标轴对象、数据系列对象、图例等等,并且可以设置图表的主题、背景色等等样式信息。

    视图-QChartView:

          负责QChart的展示。QChart本身只负责图表内容的组织、管理。图表的展示由视图负责,这个视图就是QChartView。QChartView派生自QGraphicsView,只是它专门提供了几个面向QChart的接口。比如setChart(QChart*)等。

          好了概念热身完毕,下面进入主题:用QChartView绘制折线图。

          步骤如下:

          1, 准备工作

          2, 修改pro文件

          3, 提升widget控件为QChartView

          4, 修改界面头文件

          5,  构建图表、构建系列

          6,  将图表绑定到视图

          7, 创建窗体并运行。

          下面来分别看一下:

    1 准备工作

          需要在安装qt时带上了charts,否则后面工作无法开展。

          对于编译方式安装的Qt,需要注意在configure时不要跳过charts。

          对于安装包方式安装的Qt,需要注意在安装时,确保charts组件被选中。

    2 修改pro文件

          在pro中,使用如下语句包含charts库:

    1

    QT+= charts

     

     

    • 3 提升widget控件为QChartView

          在绘制ui窗体时,从designer的工具箱中选择一个“Widget”类型的控件,将objectName设置为"widget",然后在它上面单击鼠标右键,选择“提升为”。

          在弹出的界面中,填写"提升的类名称"为: QChartView,头文件名称会自动生成,我们不用关心。

          然后单击“添加”按钮即可。

          如果在提升界面的上半部分已经有我们需要的类"QChartView",那么只需要选中它,然后单击"提升"按钮即可。

    4 修改界面头文件

          在界面的头文件中,我们需要编写下面两行代码:

    1

    2

    3

    #include <QtCharts>

    QT_CHARTS_USE_NAMESPACE

    #include "ui_xxxxx.h"

          请注意,两行加粗的代码必须写在#include  "ui_xxxxx.h"的前面,因为"ui_xxxxx.h"头文件也需要用到这里的宏定义。

          这两句代码的作用是包含QChart所需的一批头文件,并声明QTChats的命名空间。

    5,  构建图表、构建系列

    1

    QChart* chart = new QChart();

          这行代码很简单,我们构建一个QChart对象。

    1

    2

    3

    4

    QLineSeries *series = new QLineSeries();

    for (quint32 i = 0; i < 100; i++) {

        series->append(i, sin(0.6f*i));

    }

          上面的代码构建了一个折线系列对象,并且对它进行初始化。方法是调用append()接口,传递的参数x、y对用的是一组坐标数据。就是折线上的一个点。

          然后,我们将系列添加到图表,并创建默认的坐标轴。

    1

    2

    chart->addSeries(series);      

    chart->createDefaultAxes();        // 基于已添加到图表的 series 来创建默认的坐标轴

    6,  将图表绑定到视图

    1

    ui.widget->setChart(chart);       

          widget是前面第3步中我们提升的控件对象。

    7 创建窗体并运行。

    1

    2

    3

    4

    5

    6

    7

    int main(int argc, char * argv[])

    {

        QApplication app(argc, argv);

        CDialog dlg(NULL);

        dlg.exec();

        return 0;

    }

          OK,编译运行一下试试吧。是不是很简单呢?

    结语

    ----------------------------------------------------------------------------------------------------------------------

          本节我们通过将"Widget"控件提升为QChartView的方法完成了折线图的绘制。我们只修改了系列数据,其他的参数都采用默认方式,因此本节比较简单。下一节我们将演示直接使用QGraphicsView来完成本节功能的开发。后面的视频章节我们会陆续为大家介绍主题、样式设置、互操作、心电图等内容,敬请关注。

          关于QTCharts您还想知道什么,欢迎留言。

    C++老鸟整理

    90万字实战经验

    ----------------------------------------------------------------------------------------------------------------------

    ----------------------------------------------------------------------------------------------------------------------

    《Qt 5/PyQt 5实战指南》

    【此目录为书稿目录,正式出版的页码经排版后有出入】

    -----------------------------------------------------------------

    目录

    第1章 准备工作        7

    1.1        推荐的开发环境        7

    1.2        安装Visual Studio 2017(简称VS2017)        7

    1.3        安装Python        8

    1.4        安装LLVM        11

    1.5        安装Qt 5.11.1        11

    第2章 pro与pri        15

    2.1        案例1 通过一个简单的EXE来介绍pro的基本配置        15

    2.2        案例2 整理一下目录吧        22

    2.3        案例3 加点料-增加一张图片        31

    2.4        知识点 pro文件常用配置        34

    2.5        知识点 pri文件有啥用        39

    2.6        知识点 一劳永逸,引入pri体系        45

    2.7        案例4 还是不知道pri咋用?来练练手吧!        56

    2.8        配套练习        60

    第3章 多国语言国际化        63

    3.1        案例5 怎样实现国际化        63

    3.2        案例6 几种常见的国际化编程场景        68

    3.3        知识点 God!全是英文,我的翻译呢?        71

    3.4        配套练习        73

    第4章 打基础        74

    4.1        案例7 开发一个DLL(Dynamic Link Library动态链接库)        74

    4.2        案例8 使用命名空间        79

    4.3        案例9 QString的6个实用案例        83

    4.4        案例10 用qDebug()输出信息        90

    4.5        案例11 使用QVector处理数组        96

    4.6        案例12 使用QList处理链表        105

    4.7        案例13 使用QMap建立映射        110

    4.8        案例14 万能的QVariant        116

    4.9        案例15 使用QMessagebox弹出各种等级的提示信息        120

    4.10        案例16 使用QInputDialog获取多种类型的用户输入        123

    4.11        案例17 开发自己的公共类库        129

    4.12        案例18 普通文本文件读写        135

    4.13        案例19 XML格式的配置文件        142

    4.14        案例20 INI格式的配置文件        149

    4.15        案例21 把类对象序列化到二进制文件        153

    4.16        案例22 从二进制文件反序列化类对象        160

    4.17        案例23 类的XML格式序列化        166

    4.18        案例24 类的二进制格式序列化-向前兼容        174

    4.19        案例25 使用流方式读写XML        186

    4.20        案例26 使用单体模式实现全局配置        196

    4.21        案例27 读取GB13000编码的身份证信息        199

    4.22        配套练习        206

    第5章 对话框        211

    5.1        知识点 Qt设计师的使用        211

    5.2        知识点 在Designer中进行界面布局        221

    5.3        案例28 对话框-走起        226

    5.4        案例29 三种编程方式实现信号-槽开发        234

    5.5        案例30 自定义signal与信号转发        241

    5.6        案例31 disconnect的用途        243

    5.7        案例32 消息阻塞-防止额外触发槽函数        246

    5.8        案例33 信号-槽只能用在对话框里吗        250

    5.9        案例34 对象之间还能怎么传递消息        252

    5.10        案例35 编程实现控件嵌套布局        255

    5.11        案例36 样式        258

    5.12        案例37 使用QStackedLayout实现向导界面        266

    5.13        案例38 定时器1        272

    5.14        案例39 定时器2        277

    5.15        配套练习        282

    第6章 常用控件        287

    6.1        案例40 使用QLabel显示文本或图片        287

    6.2        案例41 使用行编辑器QLineEdit获取多种输入        290

    6.3        案例42 使用下拉列表框QComboBox获取用户输入        296

    6.4        案例43 使用列表框QListWidget展示数据列表        300

    6.5        案例44 使用滑动条QSlider控制进度        305

    6.6        配套练习        311

    第7章 用QPainter实现自定义绘制        313

    7.1        案例45 怎样进行自定义绘制        313

    7.2        案例46 萌新机器人        317

    7.3        案例47 机器人的新装        321

    7.4        配套练习        324

    第8章 模型视图代理        325

    8.1        知识点 Qt的MVC简介        325

    8.2        案例48 用QStandardItemModel构建树模型        329

    8.3        案例49 使用代理实现属性窗        336

    8.4        案例50 带子属性的属性窗        356

    8.5        配套练习        374

    第9章 开发SDI应用        375

    9.1        案例51 开发一个SDI应用        375

    9.2        案例52 使用自定义视图        376

    9.3        案例53 添加主菜单        378

    9.4        案例54 常规工具条        383

    9.5        案例55 在状态栏上显示鼠标坐标        385

    9.6        案例56 使用QSplashScreen为程序添加启动画面        388

    9.7        案例57 工具条反显        393

    9.8        案例58 打开文件对话框        394

    9.9        案例59 浮动窗里的列表框        397

    9.10        案例60 拖放        399

    9.11        案例61 使用树视图做个工具箱        406

    9.12        案例62 使用事项窗展示事项或日志        412

    9.13        案例63 剪切、复制、粘贴        420

    9.14        案例64 上下文菜单        428

    9.15        案例65 利用属性机制实现动画弹出菜单        431

    9.16        案例66 main()函数一般都写啥        439

    9.17        配套练习        442

    第10章 开发MDI应用        444

    10.1        案例67 MDI-采用同一类型的View        444

    10.2        案例68 MDI-采用不同类型的View        460

    10.3        配套练习        477

    第11章 重写Qt事件        478

    11.1        知识点 QWidget事件简介        478

    11.2        案例69 通过重写鼠标事件实现图元移动        479

    11.3        案例70 通过重写键盘事件实现图元移动        484

    11.4        知识点 无法切换到中文输入时该怎么办        486

    11.5        配套练习        487

    第12章 开发插件        488

    12.1        知识点 什么是插件,插件用来干啥        488

    12.2        案例71 怎样开发插件        490

    12.3        配套练习        498

    第13章 开发多线程应用        499

    13.1        案例72 多线程&互斥锁        499

    13.2        案例73 多线程应用中如何与主界面通信        507

    13.3        案例74 使用QtConcurrent处理并发-Map模式        511

    13.4        案例75 使用QtConcurrent处理并发-MapReduce        517

    13.5        配套练习        522

    第14章 开发网络应用        523

    14.1        案例76 基于Qt的TCP/IP编程        523

    14.2        案例77 TCP/IP多客户端编程        534

    14.3        配套练习        556

    第15章 PyQt 5基础        557

    15.1        知识点 PyQt 5简介        557

    15.2        知识点 搭建PyQt 5开发环境        561

    15.3        案例78 编写第一个PyQt5程序        565

    15.4        案例79 给应用加上图片        569

    15.5        案例80 信号槽初探-窗口A调用窗口B        575

    15.6        案例81 编写代码实现控件布局        577

    15.7        案例82 在窗体A中嵌入自定义控件B        586

    15.8        案例83 使用QLabel显示GIF动画        589

    15.9        案例84 使用行编辑器QLineEdit获取多种输入        591

    15.10        案例85 使用下拉列表框QComboBox获取用户输入        597

    15.11        案例86 使用列表框QListWidget展示并操作列表        602

    15.12        案例87 使用滑动条QSlider控制进度        606

    15.13        案例88 使用QMessagebox弹出提示信息        612

    15.14        案例89 使用QInputDialog获取用户输入        617

    15.15        案例90 使用QFileDialog获取用户选择的文件名        623

    15.16        案例91 把程序最小化到系统托盘        626

    15.17        配套练习        630

    第16章 PyQt 5进程内通信        632

    16.1        知识点 PyQt 5中的信号-槽        632

    16.2        案例92 使用自定义信号        635

    16.3        案例93 带参数的自定义信号        637

    16.4        案例94 信号比槽的参数少该咋办        642

    16.5        案例95 使用QTimer实现定时器        644

    16.6        案例96 使用timerEvent()实现定时器        647

    16.7        案例97 使用QStackedLayout实现向导界面        650

    16.8        配套练习        656

    第17章 PyQt 5实现自定义绘制        657

    17.1        案例98 怎样进行自定义绘制        657

    17.2        案例99 萌新机器人        661

    17.3        案例100 机器人的新装        666

    17.4        配套练习        669

    第18章 PyQt 5中的模型视图代理        670

    18.1        案例101 用QStandardItemModel构建树模型        670

    18.2        案例102 最简单的属性窗        675

    18.3        案例103 使用代理实现属性窗        677

    18.4        案例104 自定义属性窗        682

    18.5        案例105 带子属性的属性窗        693

    18.6        配套练习        705

    第19章 PyQt 5开发SDI应用        707

    19.1        案例106 开发一个SDI应用        707

    19.2        案例107 使用自定义视图        708

    19.3        案例108 添加主菜单        709

    19.4        案例109 常规工具条        715

    19.5        案例110 在状态栏上显示鼠标坐标        717

    19.6        案例111 使用QSplashScreen为程序添加启动画面        720

    19.7        案例112 工具条反显        723

    19.8        案例113 浮动窗里的列表框        725

    19.9        案例114 拖放        727

    19.10        案例115 使用树视图做个工具箱        735

    19.11        案例116 使用事项窗展示事项或日志        739

    19.12        案例117 剪切、复制、粘贴        747

    19.13        案例118 上下文菜单        754

    19.14        配套练习        757

    第20章 PyQt 5开发MDI应用        759

    20.1        案例119 MDI-采用同一类型的View        759

    20.2        案例120 MDI-采用不同类型的View        773

    20.3        配套练习        783

    第21章 PyQt 5事件        784

    21.1        案例121 通过重写鼠标事件实现图元移动        784

    21.2        案例122 通过重写键盘事件实现图元移动        789

    21.3        配套练习        790

    第22章 PyQt 5开发多线程应用        791

    22.1        案例123 多线程&互斥锁        791

    22.2        案例124 多线程应用中如何刷新主界面        796

    22.3        配套练习        799

    第23章 项目实战-C++版        801

    23.1        案例125 项目实战准备-访问SQLite数据库        801

    23.2        案例126 项目实战准备-使用QCustomPlot绘制曲线        807

    23.3        案例127 项目实战-敏捷看板        811

    第24章 项目实战-PyQt版        828

    24.1        案例128 项目实战准备-访问SQLite数据库        828

    24.2        案例129 项目实战准备-用Matplotlib绘制曲线        834

    24.3        案例130 项目实战-敏捷看板        837

    附录A        859

    A.1 PyQt 5常用类所在模块  859     

    --------------------------------------------------------------------------------------------------------------------

    ----------------------------------------------------------------------------------------------------------------------

    更多内容,请关注微信公众号:软件特攻队(微信号:xingdianketang)

     

     

     

    展开全文
  • Matplotlib库入门——简单使用方法(折线图,柱状图,饼图,散点图) python第三方库——matplotlib库 这是一个python用来将数据可视化的第三方库,下面将用案例和大家分享其在实际操作中的简单使用方法 1.导入...

    Matplotlib库入门——简单使用方法(折线图,柱状图,饼图,散点图)

    python第三方库——matplotlib库

    这是一个python用来将数据可视化的第三方库,下面将用案例和大家分享其在实际操作中的简单使用方法

    1.导入matplotlib

    import matplotlib.pyplot as plt
    import numpy as np
    

    这里为在使用中的方便,将matplotlib库别名为plt,numpy库别名为np

    2.定义可视化的简单数据

    #x = [1,2] #二者维度必须相同  ValueError: x and y must have same first dimension, but have shapes (2,) and (5,)
    x = [1,2,3,4,5]
    y = [6,7,8,9,10]
    x1 = [11,12,13,14,15]
    y1 = [16,17,18,19,20]

    在设置数据的时候需要注意,x和y的维度必须对应相等,否则就会报错如图中注释所示

    3.设置全局变量,保存一些信息

    plt.rcParams['font.family'] = ['SimHei']   #设置中文字体,SimHei时黑体  rcParmams是Matplotlib全局变量,保存一些设置信息

    解释以下设置的目的,在可视化时需要对图的标题,x或y轴进行中文标记,设置label,若无这行代码将显示不出中文字体。对该参数的其它参数名解析

    #'font.family' 用于显示字体的名字 | 'font.style' 字体风格,正常'normal'或 斜体'italic' | 'font.size' 字体大小,整数字号或者'large'、'x‐small'
    '''
    'SimHei' 中文黑体
    'Kaiti' 中文楷体
    'LiSu' 中文隶书
    'FangSong' 中文仿宋
    'YouYuan' 中文幼圆
    'STSong' 华文宋体
    '''

    4.绘制折线图

    #红色“r” 绿色“g” 青色“c” 品红“m” 黄色“y” 黑色“k” 蓝色“b”| label显示线段名 | linewidth是设置宽度
    plt.plot(x,y,'b',label = '线1',linewidth = 2)
    plt.title('折线图')
    plt.ylabel('y轴')
    plt.xlabel('x轴')
    #设置图例 plt.legend(loc='位置')
    plt.legend()
    #以72分辨率来保存名为“折线图”的图片
    plt.savefig('折线图',dpi = 72)
    plt.show()

    具体的其它颜色如下:

    'b' 蓝色
    'm' 洋红色 magenta
    'g' 绿色
    'y' 黄色
    'r' 红色
    'k' 黑色
    'c' 青绿色
    'w' 白色
    '#008000' RGB某颜色
    '0.8' 灰度值字符串
    

    在这里插入图片描述
    图片保存默认为本地.jpg格式

    5.绘制柱状图

    #柱状图
    plt.bar(x,y,label = '柱状图1')
    plt.bar(x1,y1,label = '柱状图2')
    plt.title('柱状图')
    plt.ylabel('y轴')
    plt.xlabel('x轴')
    plt.legend()
    plt.show()

    在这里插入图片描述
    6.绘制饼图

    #饼图
    activies = ['工作','吃','睡','玩']     #设置所要可视化事件的标题
    times = [8,7,3,6]    #每个事件所需要的时间
    color = ['c','m','r','b']  #每个事件可视化的颜色
    #shadow设置是否有阴影 explode 设置各项脱离饼主题的效果 autopct设置各项显示百分比 %.1f格式化字符串 %%显示一个百分号%
    plt.pie(times,labels = activies,colors = color,shadow = True,explode = (0,0.1,0,0),autopct = '%.1f%%')
    plt.title('饼图')
    plt.show()

    在绘制饼图时,只需给出每个事件所占的时间,会自动计算所占的半分比
    在这里插入图片描述
    7.绘制散点图

    #散点图
    plt.rcParams['axes.unicode_minus'] = False  #设置显示负号,由于设置了显示中文字体影响图中负号的显示,重新设置
    n = 1024
    x = np.random.normal(0,1,n)
    y = np.random.normal(0,1,n)
    plt.scatter(x,y)  #绘制散点图
    plt.title('散点图')
    plt.show()

    使用numpy的random方法随机生成1024个0到1之间的随机数
    在这里插入图片描述

    以上代码在pycharm中编写,在图片展示时会直接弹出一个框显示可视化的图片。

    展开全文
  •  ——Seaborn文档 文章目录 用散点图关联变量 Relating variables with scatter plots 简单的散点图 使用语义的散点图 两个语义对应一个变量 用折线图强调连续性 Emphasizing continuity with line plots 简单的...

    While you should make use of the flexibility afforded by scatterplot( ) and relplot( ), always try to keep in mind that several simple plots are usually more effective than one complex plot.
    当你利用 scatterplot( )和 relplot( )所提供的灵活性的同时,应当尽可能地记住一些简单图形,这往往比只记住一个复杂的图形会更加有效。                                              ——Seaborn文档


    • 导入必要的库:
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    

    用散点图关联变量 Relating variables with scatter plots

    简单的散点图

    • Seaborn中,可以绘制散点图函数有 scatterplot )relplot( );其使用逻辑为 参数data 对应数据集,参数x参数y 分别对应横轴变量和纵轴变量,传入的都是数据集中数值型数据对应的列名即所谓的变量。对于接下来只介绍的后者来说,当其 参数kind 被设置为 ‘line’ 而不是默认下的 ‘scatter’ 时,它将绘制出的是折线图。使用数据集 tips 1

    tips = pd.read_csv('tips.csv')                   # 读取数据
    sns.relplot(x='total_bill', y='tip', data=tips)  # 默认参数kind='scatter'
    

    简单的散点图

    使用语义的散点图

    • 我想,Seaborn最为人称道的便是可以通过在代码中设置参数来使用不同的语义(semantic),即让点发生改变,从而简单地在二维图像中增加更多的维度。需要指出的是,这种方法的使用逻辑同样是向语义参数传入的列名即所谓的变量,并且该列名对应的数据应为表示分类含义的数据——这是很重要的。色调语义即改变点的颜色,对应 参数hue
    sns.relplot(data=tips, x='total_bill', y='tip', hue='smoker', data=tips) 
    

    使用色调语义的散点图

    • 当向参数hue所传入的分类数据为数值时,点的着色将会呈现一种渐进的变化:
    sns.relplot(data=tips, x='total_bill', y='tip', hue='size') 
    

    使用色调语义且呈渐进变化的散点图

    • 样式语义 即改变点的样式(形状),对应 参数style
    sns.relplot(data=tips, x='total_bill', y='tip', style='smoker')
    

    使用样式语义的散点图

    • 尺寸语义 即改变点的大小(面积),对应 参数size。不同于matplotlib中绘制散点图的函数scatter ( ),点与点之间的相对大小可以由向 参数sizes 传入的范围来控制,而不用取决于数值本身的大小。
    sns.relplot(data=tips, x='total_bill', y='tip', hue='size',  size='size', sizes=(15, 200))  
                                                                            # 向参数size传入数据集tips的列名size
    

    使用尺寸语义的散点图

    两个语义对应一个变量

    • 如果同时使用色调语义和样式语义,且传入不同的变量,这时生成的二维图像相当于包含了四个变量:
    sns.relplot(data=tips, x='total_bill', y='tip', hue='smoker', style='time')
    

    使用色调和样式语义的散点图

    • 显而易见的是,由于我们的眼睛对于形状的敏感度远低于对于颜色的敏感度,圆点与叉点不容易从蓝点与橙点中区分出来。所以,我建议应当对一个变量使用两种语义 ,进而达到更直观的效果:
    sns.relplot(data=tips, x='total_bill', y='tip', hue='smoker', style='smoker')  # 改变点的颜色和样式
    

    使用颜色语义和样式语义对一个变量生成的散点图

    sns.relplot(data=tips, x='total_bill', y='tip', hue='size', size='size', sizes=(15, 200))# 改变点的颜色与大小
    

    使用颜色语义和尺寸语义对一个变量生成的散点图

    用折线图强调连续性 Emphasizing continuity with line plots

    简单的折线图

    • 生成一些用来绘制折线图的数据:500行2列,且第一列time为顺序地从0到499,第二列value由500个服从标准正态分布的随机数(由np.random.randn( )2实现)累加后(由np.cumsum( )3实现)得到。

    np.random.seed(2021)                                              # 有了这一句便可将生成的随机数组固定下来
    df = pd.DataFrame(dict(time=np.arange(500), value=np.random.randn(500).cumsum()))
    
    • Seaborn中,可以绘制折线图可以直接使用函数lineplot( )或者将函数relplot( )中的 参数kind 设置为’line’,并且其使用逻辑和散点图的绘制没有什么不同。
    sns.relplot(x='time', y='value', data=df, kind='line')
    

    简单的折线图

    • 在默认情况下,函数 relplot( ) 会对横轴变量所对应的数据进行排序后再使用,也就是希望该变量是连续的。当然可以取消这步操作,但是这样绘制出来的图一般是找不出两变量之间所具有的关系的:
    df = pd.DataFrame(np.random.randn(500, 2).cumsum(axis=0), columns=['x', 'y'])  # axis=0时, 二维数组纵向累加
    sns.relplot(data=df, x='x', y='y', kind='line', sort=False)                    # 将参数sort设置为False
    

    奇怪的折线图

    由聚合来表示不确定性

    • 对于较为复杂的数据来说,可能会出现横轴变量的同一个取值对应纵轴变量的多个不同的取值(横轴变量取值重复)这种情况。此时,Seaborn的绘图函数relplot( )会计算对应纵轴变量的均值mean)和置信水平为0.95的置信区间confidence interval)来实现一种聚合aggregation)——在matplotlib中画出来的什么都不是(难道是我不会用?)。使用数据集fmri4
    fmri = pd.read_csv('fmri.csv')
    sns.relplot(x='timepoint', y='signal', kind='line', data=fmri)
    

    使用置信区间聚合后的折线图

    • 当数据集很大的时候,计算置信区间可能需要很长的时间。有两种方法可以进行代替——都会用到 参数ci,即直接选择不计算置信区间而仅计算均值:
    sns.relplot(x='timepoint', y='signal', kind='line', data=fmri, ci=None)  # 将参数ci设置为None
    

    没有置信区间的聚合折线图

    • 或者计算数据的标准差standard deviation)来代替置信区间;而从逻辑上讲,如果其区间长度小于置信区间的长度,那么计算标准差也就不会成为备选方案了:
    sns.relplot(x='timepoint', y='signal', kind='line', ci='sd', data=fmri)  # 将参数ci设置为sd
    

    使用标准差聚合后的折线图

    • 如果不进行聚合的话,这样绘制的折线图,意义是不大的。但是我们也确实可以通过其以及对应的散点图来理解聚合到底在干什么:
    sns.relplot(x='timepoint', y='signal', estimator=None, kind='line', data=fmri)
                                                                       # 需要设置参数estimator=None来关闭聚合
    

    未聚合的折线图

    sns.relplot(x='timepoint', y='signal', kind='scatter', data=fmri) 
    

    横轴变量取值重复时的散点图

    用语义映射绘制数据子集

    • 在折线图绘制中,同样可以在绘图函数*relplot( )lineplot( )*中设置语义参数来增加更多的变量,从而扩大图像的维度。色调语义会改变线和错误带error band)的颜色:
    sns.relplot(x='timepoint', y='signal', hue='event', kind='line', data=fmri)
    

    使用色调语义绘制折线图

    • 当向参数hue所传入的分类数据为数值时,线的着色同样将会呈现一种渐进的变化。这里用到数据集dots5。在有绘图目的的情况下,对数据的要求就会比较高,以至于会用到一些额外的操作——使用*pd.query( )*函数6

    dots = pd.read_csv('dots.csv').query('align == "dots"')
    sns.relplot(x='time', y='firing_rate', hue='coherence', linewidth=4.5,                   # 设置所有线的宽度
                                  ci=None, kind='line', data=dots.query('choice == "T1"'))   # 不计算置信区间
    

    在这里插入图片描述

    • 使用样式语义时,会有更多的选择——由线本身的样式进行区分:
    sns.relplot(x='timepoint', y='signal', style='event', kind='line', data=fmri)         # 默认情况下
    

    使用样式语义的折线图

    • 或者再额外设置 参数dashes参数markers,即在数据节点, 改变点的形状:
    sns.relplot(x='timepoint', y='signal', style='event', 
                dashes=False, markers=True, kind='line', data=fmri)    # 可以认为是关闭虚线,打开标记点
    

    使用样式语义而改变节点的折线图

    • 使用尺寸语义实际上是在改变线的宽度(粗细),即不同类的线,其宽度是不同的,从而增加图像的维度:
    sns.relplot(x='timepoint', y='signal', size='event', kind='line', data=fmri)
    

    使用尺寸语义的折线图

    • 在上面的例子中,我都有意避免了同时使用两个语义,更不要说什么包含四个变量。一方面,我认为还是要从最基本的内容来进行参考,即使这些几乎没有任何难度,另一方面,我仍然建议要对一个变量使用两种语义,从而增加图像在视觉上的直观性,这在后面还会提到。出于练习以及对比,我们不妨在使用两个语义且增加两个变量的同时,体会Seaborn中的绘图函数为我们所带来的便捷性和灵活性。使用色调语义和样式语义:
    sns.relplot(x='time', y='firing_rate', hue='coherence', style='choice', kind='line', data=dots)
    

    使用色调语义和样式语义绘制折线图

    • 在同时使用色调语义和尺寸语义时,似乎线的粗细要比线的实虚要更突出一些:
    sns.relplot(x='time', y='firing_rate', hue='coherence', size='choice', kind='line', data=dots) 
    

    使用色调语义和尺寸语义绘制折线图

    通过分面来表示多个关系Showing multiple relationships with facets

    为什么要进行分面

    • 在介绍绘制重复数据的折线图时,使用到了数据集fmri,这里我们不妨进一步来看看每一列的内容究竟是什么:
    列名 数据
    subject s0、s2、s3、s4、s5、s6、s7、s8、s9、s10、s11、s12、s13
    timepoint 0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18
    event cue、stim
    region parietal、frontal
    signal -0.25549 ~ 0.564985
    • 更具体的:
    subject timepoint event region signal
    s0 1 cue parietal 0.0003
    s0 2 cue frontal 0.024296
    s0 2 stim parietal 0.009642
    s0 17 stim frontal -0.03932
    s7 2 cue parietal -0.07661
    s8 7 stim parietal 0.312811
    s13 9 stim frontal -0.06805
    • 尝试着对这个数据集进行解释:由列 ’subject‘ 可知共有14个采样单位(sampling unit),每个单位由列 ‘event’ 分为 ‘cue’’stim’ 两类、由列 ‘region’ 分为 ‘parietal’’frontal’ 两类,在19个时间单位(0, 1, … , 18)上,测得其 ’signal‘ 值;并且重复值的出现是因为每个时间单位上有十四个采样单位,每个单位又分成4类(2 × 2),即重复56个观测值——这是通过观察不难得出分析结果。

      那么在对数据集有一定了解的情况下,处理起重复值绘图问题就又多了一种选择,即向***参数units***传入列名 ’subject’,绘制出该列的每一个采样单位。接下来选择4类中的一类来进行绘制:

    sns.relplot(x='timepoint', y='signal', 
      units='subject', estimator=None,                                        # 对参数estimator的设置似乎是不能缺少的
      kind='line', data=fmri.query('event == "stim" & region == "parietal"')) # 使用pd.query()函数来选择一类
    

    绘制每个采样单位的折线图

    • 上面的这幅图中共有14条线,如果这时使用色调语义来考虑变量 ‘region’ 对横轴变量 ‘timepoint’ 与纵轴变量 *‘signal’*之间的关系所带来的影响,得到的将是28条线密集地出现在一张图这不太让人容易观察出什么的结果:
    sns.relplot(x='timepoint', y='signal', hue='region',                                        # 设置语义参数hue
                units='subject', estimator=None,
                kind='line', data=fmri.query('event == "stim"'))
    

    绘制每个采样单位的三变量折线图

    给出解决方案

    • 对上面的问题,可以概括成:如何理解两个变量之间的关系是如何依赖于至少一个的其他变量呢?(But what about when you do want to understand how a relationship between two variables depends on more than one other variable?

      Seaborn中,最好的办法就是绘制多张图。对于 参数 col参数 row 来说,和语义参数一样,都是传入类别数据的列名,便会在行和列上生成对应的子图,每个子图表示在该类别下,横轴变量和纵轴变量之间的关系。如果将每个采样单位的四个类别绘制成四张子图,绘制出来的效果可能会有所改善:

    sns.relplot(x='timepoint', y='signal', hue='subject',
                col='region', row='event', estimator=None,
                height=2.5, kind='line', data=fmri)   # 参数height设置每个子图的高度
    

    根据类别绘制多个子图

    • 如果将14个采样单位独立地绘制出来,并且是在只考虑两个类别的情况下,这样得到的图像会因为其小而多变得非常有效:
    sns.relplot(x='timepoint', y='signal', kind='line', 
        hue='event', style='event',               # 一个变量, 两种语义
        col='subject', col_wrap=5, linewidth=2.5, # 参数col_wrap表示一行子图的个数
        height=2.5, aspect=1.0,                   # 参数aspect表示子图的高度与宽度之比
        data=fmri.query('region == "frontal"'))       
    

    根据采样单位绘制多个子图


    1. 数据集tips的列名为:Index([‘total_bill’, ‘tip’, ‘sex’, ‘smoker’, ‘day’, ‘time’, ‘size’], dtype = ‘object’) ,对应的数据类型分别为:float64、float64、object、object、object、object、int64. ↩︎

    2. 生成的随机数服从标准正态分布,传入生成数据的形状;这里是大小为500的一维数组。可以参考这篇有关生成随机数的文章 ↩︎

    3. 简单的操作: 对于数组arr_1 = [1, 1, 1, 1, 1], arr_1.cumsum( ) = [1, 2, 3, 4, 5]; 对于数组arr_2 = [1, 2, 3, 4], arr_2.cumsum( ) = [1, 3, 6, 10]. ↩︎

    4. 数据集fmri的列名为:Index([‘subject’, ‘timepoint’, ‘event’, ‘region’, ‘signal’], dtype = ‘object’), 对应的数据类型分别为: object、 int64、object、object、float64。更详细的可以参考第三大部分:通过分面来表示多个关系的开头。 ↩︎

    5. 数据集dots的列名为:Index([‘align’, ‘choice’, ‘time’, ‘coherence’, ‘firing_rate’], dtype = ‘object’) ,对应的数据类型分别为:object、object、object、int64、float64、float64. ↩︎

    6. 可以说,该函数是用来在数据框(数据集)中挑选行(样本)的;这里就是在数据集dots中,挑选出列 ‘align’(变量)为"dots"的行(样本),之后又挑选出列 ‘choice’(变量)为"T1"的行(样本)。 ↩︎

    展开全文
  • 生成数据 数据可视化 数据可视化指的是通过可视化表示来探索数据,它与数据挖掘机密...上面就是matplotlib生成折线图散点图的做法,当然matplotlib还有很多用途,这些用途咱们以后会讲到,十分感谢大家阅读。
  • 常见的统计图主要有折线图散点图,柱状图,直方图和饼图,他们之间最明显的特征特点区别如下: 各种图名称 图意义 和区别 折线图 变化情况趋势 散点图 变量之间关系 柱状图 分类变量数量对比 直方图...
  • 1、掌握pyplot基础语法 1.1、基本绘图流程 1.2、创建画布与创建子图 1.2.1、设置画布大小 1.2.2、添加图列 ...3、绘制折线图 4、绘制直方图 5、绘制饼图 6、绘制箱线图 6.1、绘制单个箱线图 6.2、绘制多个箱
  • 一、首先,引用下python包 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np from mpl_toolkits.mplot3d import ...1.折线图 def lineChart1(): """单一曲线""" x = np.linspace...
  • 使用QChartView做折线图

    2021-03-03 14:53:24
    系列除了负责存储、访问数据,应该还提供了数据的绘制方法,比如折线图和曲线图分别对应 QLineSerie 和 QSPLineSerie。我们可以用不同的系列达到不同的展示目的。 图例-Legend: 类似于 Excel,Qt Charts 中也提供了...
  • 目录画柱状图画折线图画直方分布图改进(自由设置坐标刻度、横纵坐标重合)画二维散点图(包括坐标刻度用科学计数法)画三维散点图画热力图 为了达到美观的效果,本文给出的例子都稍微有点复杂。但是使用起来并不...
  • 分组折线图的教程却很少,一般也不太用的到,但有时候利用分组折线图可以帮我们更清晰的表达图意。 要实现的目标 上图→下图 上下两个图数据一样,只改了x轴是不是感觉下图更加清晰呀? 更改步骤 我们在这说的普通...
  • 导读:Tableau是商业智能软件届的翘楚,对于制作各种可视化分析图表极为...01 基本折线图如果说在展示数据图表方面哪种图形最为经典的话,那么折线图肯定可以占据一席之地。很多可视化工具的默认图表形式就是折线图...
  • SCI论文写作中折线图和柱状图的区别在SCI论文写作中,描述实验数据的时候我们常常会遇到选择使用柱状图还是折线图的问题。那么我们应该如何选择呢?首先我们必须清楚的是,折线图的横坐标必须是有递减关系的,比如...
  • Py之seaborn:数据可视化seaborn库(一)的柱状图、箱线图(置信区间图)、散点图/折线图、核密度图/等高线图、盒形图/小提琴图/LV多框图的简介、使用方法之最强攻略(建议收藏) 导读:数据可视化是以客观数据为主体...
  • 智能折线图、柱状图,支持水平垂直滚动拉伸,自适应屏幕(解决与scrollview滑动冲突),x轴y轴自定义刻度以及标题,双向滚动列表;增加一周天气折线图以及24小时天气预报
  • R中散点图

    千次阅读 2018-11-12 11:11:53
    散点图简介 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本。 &nbsp;&nbsp;&nbsp;&...
  • matplotlib——散点图

    2021-05-25 10:41:02
    matplotlib——散点图 实验目的 了解scatter函数的每个参数的含义 掌握使用matplotlib画散点图的方法 实验原理 散点图: matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin...
  • Qt自定义折线图控件

    千次阅读 热门讨论 2018-10-15 11:34:43
    目录 基础效果图 前言 设计要点 ...使用Qt自定义折线图,可以自己控制折线图的重绘规则,究竟是每添加一个数据就刷新整个折线图,还是只刷新部分折线图。 我把折线图分为以下两类: 坐标系是静...
  • 用rstudio画散点图_R中的散点图

    千次阅读 2020-07-19 00:14:52
    用rstudio画散点图Scatterplots in R are the simplest form of graphs that plot two vector variables against each other. These are useful to know the distribution and density of a variable relative to ...
  • python绘制散点图并标记序号的方法实现二维平面上散点的绘制,并可以给每个散点标记序号或者名称:import numpy as npimport matplotlib.pyplot as pltx=[2.3,4.5,3,7,6.5,4,5.3]y=[5,4,7,5,5.3,5.5,6.2]n=np.arange...
  • QT实现散点图

    千次阅读 2019-10-14 16:33:05
    公司需求需要绘制散点图。 在QT下实现散点图有几种方式, 1)采用Qt自带的QtCharts库,自行查看相应API即可实现散点图的绘制,需要注意坐标轴的问题,但是这个方式实现散点图在大数据量下机器会异常卡顿故pass. 2...
  • 我们先一个随着时间变化的销售额折线图。 二、编写LOD字段 然后,我们写一个LOD字段,这个字段的目的是用来制作饼图。 》》为什么需要用到LOD呢? 因为我们想在饼图里面添加类别,来表达这个日期销售额是...
  • 本实验主要介绍散点图理论与基于Python的散点图实现。 1.1. 实验目的 掌握散点图基本使用场景,使用Python的pyecharts模块实现散点图。 1.2. 知识点 散点图理论 散点图实现 2. 散点图理论 散点图介绍: 散点图...
  • 如果折线图上的数值为0会在,x轴有一段水平线,如果能将这段隐藏就达到了折线图切割的效果。 echarts中有个折线图渲染属性 visualMap, 可以利用这个属性对折线进行修饰。让被选中的区间透明就达到切割的目的了。 ...
  • vc6.0 绘制散点图Scatterplots are one of the most popular visualization techniques in the world. Its purposes are recognizing clusters and correlations in ‘pairs’ of variables. There are many ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,935
精华内容 5,974
关键字:

做散点图的目的