python 散点图 虚线_用Python绘制和制作数据分析报告

本文介绍了如何使用Python的Pandas和Numpy进行数据可视化,特别是散点图和虚线的绘制。通过示例展示了如何设置线条颜色、形状、样式,以及调整坐标轴范围。同时,讲解了在数据图表中添加必要的元素,如标题、坐标轴含义,以增强可读性。最后,文章探讨了多公司股票数据的可视化分析,包括涨跌幅计算、相关性矩阵和不同图表类型的应用。
摘要由CSDN通过智能技术生成

Python中有两个常用的包,一个是Numpy,重点在于进行矩阵运算,另一个是Pandas, 我们都知道数据分析都要用到大量的图形图标,而Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具,这里我们主要来运用pandas来进行相关的数据分析。

首先,我们需要导入数据分析需要的数据包

9cd4d472bd8669b4307e5805e67d4b5d.png
导入绘图包matplotlib

导入matplotlib中的pyplot模块后,我们可以用plot方法绘制我们想要的图形

我们先来绘制一个简单的折线图

5b2a8c77c99a04d5d591d08affc9db1a.png

1e6753b85a222affd1ec3cd719c628e0.png

绘制好图片后,我们如果要在后续工作中用到图片的话,可以对图片进行保存,以下保存的图片相较于上面的图片来说,视觉上更加好看了一些,而且更加清晰了

3f859e12c2d3d3ffbc533c83abc942f8.png

b02db4f4efeeed3e71cea706bd6587ae.png
保存好的图片

对这张图片我们还可以做其他的操作,比如说可以设置线条的属性,我可以通过以下方法对图片进行调整:

color:线条颜色,值r表示红色red

marker:点的形状,值o表示点为圆圈标记(circle marker)

linestyle:线条的形状,值dashed表示用虚线连接各点

我们还可以设置axis:坐标轴的范围

语法为:axis([xmin,xmax,ymin,ymax]),也就是axis([x轴最小值,x轴最大值,y轴最小值,y轴最大值])

29fe5107aed45f4e7a3c6f715675ee50.png

在Python中,pandas一般是基于pandas来实现绘图功能的,下面来介绍以下结合pandas和numpy来进行绘图

先导入numpy数据包

6695f24e75a409c5f7037f850bc6edf6.png

再随机生成一个数组

e739184cd6882c888662835d3f56d200.png

在同一张图里绘制多个线条

433178a92381681a1fff1f40fa21bbd1.png

b48110b73e51337dada50e971a3aa9c6.png

通过以上两个图形的绘制,我们大致掌握了绘图的基本步骤,但是如果要将图片真正给别人看的话,我想是没有人能够看懂的,因为这里缺少了很多图片的必要要素,比如说坐标轴代表的意思,标题是什么,线条具体代表的是什么,统统都不知道,所以为了让我们的图片能够让别人看懂,我们可以通过以下代码来解决以上的问题。

c7b4e8636f315a0ecd6861bf1f71cafb.png

f53932e0b69eaa65edaab8616437ef7d.png

上图可以看到,图片中的文本内容是乱码,之所以会产生乱码,是因为配置文件中没有加载中文字体。解决的办法是给配置文件指定一个可用的中文字体,设置好后再显示图片进行查看,具体设置方法可以参考以下步骤:

40b3c36001396eb668a92d8a36082d1a.png

977587a847c99bf8b287ed8b5f8154c7.png

f3eacf7b417400ba91b4d4c0a539828c.png

0585742fd3991ee3d3db8c312303adf8.png

5b6489955e86dc74757f39d1a2d20f3c.png

设置好之后,需要重启notebook,再运行程序,即可查看带中文的图片了

b05314b9eaee03595bd523187d79d6aa.png

好的数据分析应该是有对比的,我们通常是将多个需要对比的数据信息放在同一张图片中,这样我们才能更好的分析我们想要的信息。下面我将练习如何将在一个画板中绘制多张图片

b0b061d005cdb7a1433b540da28a1565.png

534456102cbe935350668df895ba5920.png

通过以上的练习,我们知道了如何利用pandas进行绘图,下面我们将运用真实的数据来绘制和制作数据分析报告

首先导入数据分析包,通过导入的data模块,我们可以获取互联网的数据

163896adc6a8d76275f6d7b315a8d4ba.png

编辑我们需要的6家公司的字典信息,以便于后续操作

e804081eba0e28268282412507b81fdd.png

然后从网上获取6家公司的股票信息

221980c7f74798635ac368d0352d943e.png

但是,由于我们获取的是国外网站的数据,相对于国内网的数据来说比较慢,为了不在这里耽误更多不必要的时间和精力,我们可以将事先准备好的6家公司股票数据通过文件导入的方式导入到我们的notebook当中

8002c5b1adcbd65c3183b05cc0fc5719.png

这里我们将阿里巴巴的数据已经成功导入,下面我们可以看下前5行,初步了解一下数据长什么样

14b6c83550d23f89b85cc8adf444e39a.png

查看一下每个字段的信息如何

e8d63d22ff45ef079b53b297a727e890.png

字段信息解读:

Index:251,有251条行索引,说明有251条数据

Data columns (total 7 columns)):总共有7列数据,说明有7个字段

所有字段均无Nul值,除了成交量Volume为int64(整数型数据)和Date为日期型数据之外,其他均为浮点型数据

dtypes: datetime64[ns](1), float64(5), int64(1) :所有字段类型是浮点型5个,整数型1个,日期型一个

了解了整个数据的结构和类型之后,我们来利用之前学到的来对阿里巴巴的数据绘制图形

05f0fbcf31c3e7217720f0916aa18333.png

99bc92411382c194c0e3f8298e8a5e02.png

另外,这里我们可以通过对plot方法中的参数kind进行赋值,可以实现绘制其他类型的图片,下面简单展示一下:

f6cebb152d24b4f874d8c20733a2a30b.png

对于kind值,有以下值对应了不同的图片类型

kind无取值:折线图 kind='scatter':散点图

kind='bar':柱状图 kind='box':箱线图

kind='hist':直方图(histogram) kind='pie':饼图

kind='area':面积图

在数据分析中,相关系数矩阵可以帮我们查看各个字段之间的相关关系如何,下面绘制以下阿里巴巴股价的相关系数矩阵

550d34e34ed38548b3cc989182cf7b06.png

从相关系数矩阵可以看到,最高价、最低价、开盘价和收盘价和Adj Close都存在着非常高的相关性,而这5个变量与成交量的相关性相对来说就小很多

描述性统计是一般的数据分析必不可少的,下面来看一下阿里巴巴股票数据集的描述性统计如何

f20e7d31e1fbb2423707293005302a8f.png

从以上这个表格我们可以看到各个字段的描述性统计信息,包括共有多少条数据,均值,标准差,最小值,25分位数,50分位数,75分位数,最大值

对于股票来说,涨跌是各大股东和广大股民非常关注的指标,所以我们来计算一下阿里巴巴股票的涨跌幅

计算股票涨跌幅,可以用自定义函数进行实现:

函数功能:计算股票涨跌幅=(现在股价-买入价格)/买入价格

输入参数:column是收盘价这一列的数据

返回数据:涨跌幅

622fd1252edbfed82859c8c1d3b3a337.png

ed9c193d49fa4d62ba32021f3e3fc34a.png

从这里我们可以看出,阿里巴巴在2017年整年股价是上涨的,涨幅是94.62%。

数据可视化

下面我们联合5家公司的数据做一个整体的数据分析

谷歌

180576fd696411d7ad457077e5b7b0cb.png

查看数据

c602dc0a5230b89348efbe96e402e4cc.png

查看字段信息

f340f4562e73a406a70f79ad488dc837.png

计算涨跌幅

b0dd379e712db2a80ab2c02d2b845a77.png

亚马逊

31e3924c7999b73805095285ca1d5198.png

查看数据

65abac9849e007721d7bd0111142d0bf.png

计算涨跌幅

997e0105a11497e088d1b50ac46a9ed7.png

Facebook

11f5f3c9e2b5a4b50d78693581685a68.png

查看数据

0a1cedc41528d5be443372a1c13616e2.png

计算涨跌幅

a8e8acebbcde4cd5d114f86f24250a08.png

苹果

2865549197efd3d8a84e21bd0df4dd48.png

查看数据

fa2019288612bcaee9db53f99485f73b.png

计算涨跌幅

f1b582511a1b334631eb4d8fe4ae3763.png

腾讯

b13bbb1c39abad7c42a25e8853cddb8b.png

查看数据

b00a40be6c7e4c27174e59e774382550.png

注意:腾讯是港股,所以这里的收盘价是港币,为了分析的统一性,故现在将按汇率将股价转换成美元计算

f52c159d04660872e9d6bd5e727af071.png

计算涨跌幅

fcdd058241220546c3a3bba44c95fa09.png

现在,我们有了6家公司的全部数据,下面我们将这些数据进行可视化分析

03f3d2f12e272610c467040fa45c083a.png

6062f90fd64a8071d5ac849b2414a691.png

从上图可以看出,有两个公司的股价和其他公司股价差别悬殊,如果都放在一张画纸上的话,对于美观和分析来说并不合适,故下面将其分别放在不同的画纸上,并用label自定义图例,这样我们就知道哪个颜色的线条是代表哪个公司了

861a7eaaec5872029779fd199c1197b1.png

a7f5b1ca20d948cb7d3d892ee85a56e2.png

从上图可以看出,亚马逊公司的股价略高于谷歌公司,而且他们的股价都随着时间而逐渐上涨,其中在11月份的时候,亚马逊公司的股价陡然上升,拉开了了两家公司的股价差距

下面绘制另外四家公司的股价走势图

d258517598fde31583f8ab10e1952595.png

d51982e7d123ae98ac203ce1a687fdee.png

从上图能够看出,四家公司的股价都呈上升趋势。腾讯相较于其他三家公司来说,股价相对较低,但其一直保持着平稳的增长趋势,实力不可小觑。另外三家公司中,阿里巴巴一直保持着持续稳定的增长,并在股价上反超另外两家公司,发展潜力较大。Facebook和苹果公司在上半年股价不想上下,下半年Facebook比苹果公司的股价稍高。

绘制柱状图

40637c357bd1be061efd030d09661662.png

4b78b6569e4bba13a4a01d7c2c4a7182.png

2a18a6de554ac9d389f278343fb5fde8.png

绘制箱线图

98b93baa6c4c1050d3ed7da2ebf06a19.png

b8969aa147b25c4a5f56b9e2352ffbe5.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值