Python实现数据可视化案例分析

目录
  • 1. 问题描述
  • 2. 实验环境
  • 3. 实验步骤及结果

1. 问题描述

对右图进行修改:

  • 请更换图形的风格
  • 请将 x 轴的数据改为-10 到 10
  • 请自行构造一个 y 值的函数
  • 将直方图上的数字,位置改到柱形图的内部垂直居中的位置
  • 对成绩数据 data1402.csv 进行分段统计:每 5 分作为一个分数段,展示出每个分数段的人数直方图。
  • 自行创建出 10 个学生的 3 个学期排名数据,并通过直方图进行对比展示。
  • 线图
    • 把这个图像做一些调整,要求出现 5 个完整的波峰。
    • 调大 cos 波形的幅度
    • 调大 sin 波形的频率
  • 用线图展示北京空气质量数据

展示 10-15 年 PM 指数月平均数据的变化情况,一幅图中有 6 条曲线,每年 1 条曲线。

2. 实验环境

Microsoft Windows 10 版本18363

​ PyCharm 2020.2.1 (Community Edition)

​ Python 3.8(Scrapy 2.4.0 + numpy 1.19.4 + pandas 1.1.4 + matplotlib 3.3.3)

3. 实验步骤及结果

对右图进行修改:

  • 请更换图形的风格
  • 请将 x 轴的数据改为-10 到 10
  • 请自行构造一个 y 值的函数
  • 将直方图上的数字,位置改到柱形图的内部垂直居中的位置
from matplotlib import pyplot as plt
import numpy as np

fig, ax = plt.subplots()
plt.style.use('classic')
plt.title("square numbers")

ax.set_xlim(-11, 11)
ax.set_ylim(0, 100)

x = np.array(range(-10, 11))
y = x * x
rect1 = plt.bar(x, y)
for r in rect1:
    ax.text(r.get_x(), r.get_height() / 2, r.get_height())
plt.show()

如图使用 classic 风格,x 轴数据为[-10, 10]的整数,构造的函数为 y=x2,显示位置并将其将数值改到了柱形图内部垂直居中的位置。

对成绩数据 data1402.csv 进行分段统计:每 5 分作为一个分数段,展示出每个分数段的人数直方图。

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd

df = pd.read_csv("./data1402.csv", encoding='utf-8', dtype=str)
df = pd.DataFrame(df, columns=['score'], dtype=np.float)
section = np.array(range(0, 105, 5))
result = pd.cut(df['score'], section)
count = pd.value_counts(result, sort=False)
fig, ax = plt.subplots()
plt.style.use('classic')
ax.set_xlim(0, 100)
rect1 = plt.bar(np.arange(2.5, 100, 5), count, width=5)
for r in rect1:
    ax.text(r.get_x(), r.get_height(), r.get_height())
plt.show()

自行创建出 10 个学生的 3 个学期排名数据,并通过直方图进行对比展示。

import random

semester1 = np.arange(1, 11)
semester2 = np.arange(1, 11)
semester3 = np.arange(1, 11)

random.shuffle(semester1)
random.shuffle(semester2)
random.shuffle(semester3)
df = pd.DataFrame({'semester1':semester1, 'semester2':semester2, 'semester3':semester3})
print(df)
df.to_csv("data1403.csv", encoding="utf-8")

使用如上代码创建出随机的排名数据。

df = pd.read_csv("./data1403.csv", encoding='utf-8', dtype=str)
df = pd.DataFrame(df, columns=['semester1', 'semester2', 'semester3'], dtype=np.int)

df['total'] = (df['semester1'] + df['semester2'] + df['semester3']) / 3
df = df.sort_values('total')

fig, ax = plt.subplots()
plt.style.use('classic')
plt.title('RANK')
width = 0.2
x = np.array(range(0, 10))
rect1 = ax.bar(x-2*width, df['semester1'], width=width, label='semester1')
rect2 = ax.bar(x-width, df['semester2'], width=width, label='semester2')
rect3 = ax.bar(x, df['semester3'], width=width, label='semester3')
for r in rect1:
    ax.text(r.get_x(), r.get_height(), r.get_height())
for r in rect2:
    ax.text(r.get_x(), r.get_height(), r.get_height())
for r in rect3:
    ax.text(r.get_x(), r.get_height(), r.get_height())
plt.legend(ncol=1)
plt.show()

如上代码绘图:

线图 :

  • 把这个图像做一些调整,要求出现 5 个完整的波峰。
  • 调大 cos 波形的幅度
  • 调大 sin 波形的频率
import numpy as np
from matplotlib import pyplot as plt

x = np.linspace(-5 * np.pi, 5 * np.pi, 500)
y1 = 3 * np.cos(x)
y2 = np.sin(4*x)

fig, ax = plt.subplots()
plt.style.use('classic')
ax.spines["right"].set_visible(False)
ax.spines["top"].set_visible(False)
ax.spines['bottom'].set_position(('data',0))
ax.xaxis.set_ticks_position('bottom')
ax.spines['left'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
plt.plot(x, y1, color='blue', linestyle='-', label='y=3cosx')
plt.plot(x, y2, color='red', linestyle='-', label='y=sin3x')
plt.legend()
plt.show()

用线图展示北京空气质量数据

展示 10-15 年 PM 指数月平均数据的变化情况,一幅图中有 6 条曲线,每年 1 条曲线。

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
orig_df = pd.read_csv("./BeijingPM20100101_20151231.csv", encoding='utf-8', dtype=str)
orig_df = pd.DataFrame(orig_df, columns=['year', 'month', 'PM_US Post'])
df = orig_df.dropna(0, how='any')
df['month'] = df['month'].astype(int)
df['year'] = df['year'].astype(int)
df['PM_US Post'] = df['PM_US Post'].astype(int)
df.reset_index(drop=True, inplace=True)
num = len(df)
section = np.arange(1, 13)
record = 0
fig, ax = plt.subplots()
plt.style.use('classic')
plt.title("2010-2015 Beijing average PM2.5(from PM_US Post) per month")

for nowyear in range(2010, 2016):
    i = record
    result = [0 for i in range(13)]
    nowsum = 0
    cntday = 0
    nowmonth = 1
    while i < num:
        if df['month'][i] == nowmonth:
            cntday = cntday + 1
            nowsum = nowsum + df['PM_US Post'][i]
        else:
            if df['year'][i] != nowyear:
                record = i
                result[nowmonth] = nowsum / cntday
                break
            result[nowmonth] = nowsum / cntday
            cntday = 1
            nowsum = df['PM_US Post'][i]
            nowmonth = df['month'][i]
        i = i + 1
    result = result[1:]
    #
    x = np.array(range(1, 13))
    plt.plot(x, result, linestyle='-', label=str(nowyear))
plt.legend()
plt.show()

到此这篇关于Python实现数据可视化案例分析的文章就介绍到这了,更多相关Python数据可视化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实战实现爬取天气数据并完成可视化分析详解

    1.实现需求: 从网上(随便一个网址,我爬的网址会在评论区告诉大家,dddd)获取某一年的历史天气信息,包括每天最高气温.最低气温.天气状况.风向等,完成以下功能: (1)将获取的数据信息存储到csv格式的文件中,文件命名为”城市名称.csv”,其中每行数据格式为“日期,最高温,最低温,天气,风向”: (2)在数据中增加“平均温度”一列,其中:平均温度=(最高温+最低温)/2,在同一张图中绘制两个城市一年平均气温走势折线图: (3)统计两个城市各类天气的天数,并绘制条形图进行对比,假设适合旅游的

  • python实现股票历史数据可视化分析案例

    投资有风险,选择需谨慎. 股票交易数据分析可直观股市走向,对于如何把握股票行情,快速解读股票交易数据有不可替代的作用! 1 数据预处理 1.1 股票历史数据csv文件读取 import pandas as pd import csv df = pd.read_csv("/home/kesci/input/maotai4154/maotai.csv") 1.2 关键数据--在csv文件中选择性提取"列" df_high_low = df[['date','high',

  • Python 数据可视化实现5种炫酷的动态图

    本文将介绍 5 种基于 Plotly 的可视化方法,你会发现,原来可视化不仅可用直方图和箱形图,还能做得如此动态好看甚至可交互. 那么,Plotly 有哪些好处?Plotly 的整合能力很强:可与 Jupyter Notebook 一起使用,可嵌入网站,并且完整集成了 Dash——一种用于构建仪表盘和分析应用的出色工具. 启动 如果你还没安装 Plotly,只需在你的终端运行以下命令即可完成安装: pip install plotly 安装完成后,就开始使用吧! 动画 在研究这个或那个指标的演变

  • Python echarts实现数据可视化实例详解

    目录 1.概述 2.安装 3.数据可视化代码 3.1柱状图 3.2折线图 3.3饼图 总结 1.概述 pyecharts 是百度开源的,适用于数据可视化的工具,配置灵活,展示图表相对美观,顺滑. 2.安装 python3环境下的安装: pip3 install pyecharts 3.数据可视化代码 3.1 柱状图 from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker

  • Python 数据可视化超详细讲解折线图的实现

    绘制简单的折线图 在使用matplotlib绘制简单的折线图之前首先需要安装matplotlib,直接在pycharm终端pip install matplotlib即可 使用matplotlib绘制简单的折线图,再对其进行定制,实现数据的可视化操作 import matplotlib.pyplot as plt # 导入pyplot模块并设置别名为plt squares = [1, 4, 9, 16, 25] plt.plot(squares) plt.show() # 打开matplotib

  • 基于Python实现股票数据分析的可视化

    目录 一.简介 二.代码 1.主文件 2.数据库使用文件 3.ui设计模块 4.数据处理模块 三.数据样例的展示 四.效果展示 一.简介 我们知道在购买股票的时候,可以使用历史数据来对当前的股票的走势进行预测,这就需要对股票的数据进行获取并且进行一定的分析,当然了,人们是比较喜欢图形化的界面的,因此,我们在这里采用一种可视化的方法来实现股票数据的分析. 二.代码 1.主文件 from work1 import get_data from work1 import read_data from w

  • Python实现爬取天气数据并可视化分析

    目录 核心功能设计 实现步骤 爬取数据 风向风级雷达图 温湿度相关性分析 24小时内每小时时段降水 24小时累计降雨量 今天我们分享一个小案例,获取天气数据,进行可视化分析,带你直观了解天气情况! 核心功能设计 总体来说,我们需要先对中国天气网中的天气数据进行爬取,保存为csv文件,并将这些数据进行可视化分析展示. 拆解需求,大致可以整理出我们需要分为以下几步完成: 1.通过爬虫获取中国天气网7.20-7.21的降雨数据,包括城市,风力方向,风级,降水量,相对湿度,空气质量. 2.对获取的天气数

  • Python实现数据可视化案例分析

    目录 1. 问题描述 2. 实验环境 3. 实验步骤及结果 1. 问题描述 对右图进行修改: 请更换图形的风格 请将 x 轴的数据改为-10 到 10 请自行构造一个 y 值的函数 将直方图上的数字,位置改到柱形图的内部垂直居中的位置 对成绩数据 data1402.csv 进行分段统计:每 5 分作为一个分数段,展示出每个分数段的人数直方图. 自行创建出 10 个学生的 3 个学期排名数据,并通过直方图进行对比展示. 线图 把这个图像做一些调整,要求出现 5 个完整的波峰. 调大 cos 波形的

  • Python数据可视化之分析热门话题“丁克家庭都怎么样了”

    一.前言 随着三胎政策的开放,人们对于生娃的讨论也逐渐热烈了起来,经常能够在各大社交媒体当中看到相关的话题,而随着时间慢慢地流逝,中国的首批"丁克家庭"已步入晚年,而相关的话题"那些当初选择不生孩子,现在四五十岁的人怎么样了?"也逐渐受到了人们的关注,尤其是现在年轻人生育的欲望已经不再那么的高了的情况下, 二.数据分析与可视化 首先我们对于网友的评论进行数据的采集,还是老规矩通过Python当中的Requests模块来发起请求,对返回的内容做整理之后取出我们想要的评

  • 如何用Python数据可视化来分析用户留存率

    关于"漏斗图" 漏斗图常用于用户行为的转化率分析,例如通过漏斗图来分析用户购买流程中各个环节的转化率.当然在整个分析过程当中,我们会把流程优化前后的漏斗图放在一起,进行比较分析,得出相关的结论,今天小编就用"matplotlib"."plotly"以及"pyecharts"这几个模块来为大家演示一下怎么画出好看的漏斗图首先我们先要导入需要用到的模块以及数据, import matplotlib.pyplot as plt im

  • Python疫情数据可视化分析

    目录 前言 功能函数 读取文件 更换列名,便于查看 全球疫情趋势 筛选出中国的数据 利用groupby按照省统计确诊死亡治愈病例的总和 确诊人数排名前15的国家 这里用pyecharts库画图,绘制的玫瑰图,rosetype 中国确诊人数前十的省 区域图 热力图 全球死亡人数地理分布情况 全球疫情频率直方图 其他图 陕西确诊病例饼图 陕西省确诊病例数据分布 中国治愈病例玫瑰图 前言 本项目主要通过python的matplotlib pandas pyecharts等库对疫情数据进行可视化分析 数

  • python地震数据可视化详解

    本文实例为大家分享了python地震数据可视化的具体代码,供大家参考,具体内容如下 参考源码:seisplot 准备工作: 在windows10下安装python3.7,下载参考源码到本地. 1. demo绘图测试 demo绘图指令 cmd> python seisplot.py --demo 问题1)缺少依赖包 File "D:/Desktop/python可视化/seisplot/seisplot.py", line 16, in <module> import

  • python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意味着概念.方法.参数繁多,让许多新手望而却步. 据我了解,大部分人在对matplotlib接触不深时都是边画图边百度,诸如这类的问题,我想大家都似曾相识:Python如何画散点图,matplotlib怎么将坐标轴标签旋转45度,怎么设置图例字体大小等等.无论针对哪一个问题,往往都有多种解决方法,搜索

  • Python实现地图可视化案例详解

    目录 ​前言 一.pyecharts Map Geo Bmap 二.folium 结 语 ​前言 Python的地图可视化库很多,Matplotlib库虽然作图很强大,但只能做静态地图.而我今天要讲的是交互式地图库,分别为pyecharts.folium,掌握这两个库,基本可以解决你的地图可视化需求. 一.pyecharts 首先,必须说说强大的pyecharts库,简单易用又酷炫,几乎可以制作任何图表.pyecharts有v0.5和v1两个版本,两者不兼容,最新的v1版本开始支持链式调用,采用

  • Python pyecharts数据可视化实例详解

    目录 一.数据可视化 1.pyecharts介绍 2.初入了解 (1).快速上手 (2).简单的配置项介绍 3.案例实战 (1).柱状图Bar (2).地图Map (3).饼图Pie (4).折线图Line (5).组合图表 二.案例数据获取 总结 一.数据可视化 1.pyecharts介绍 官方网址:https://pyecharts.org/#/zh-cn/intro 概况: Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,使用JavaScript实现的.

  • Python seaborn数据可视化绘图(直方图,密度图,散点图)

    目录 前言 一.直方图distplot() 二.密度图 1.单个样本数据分布密度图 2.两个样本数据分布密度图 三.散点图 1.jointplot()综合散点图 2.拆分综合散点图JointGrid() 3.pairplot()矩阵散点图 4.拆分综合散点图JointGrid() 前言 系统自带的数据表格,使用时通过sns.load_dataset('表名称')即可,结果为一个DataFrame. print(sns.get_dataset_names()) #获取所有数据表名称 # ['ans

  • Python实现数据可视化看如何监控你的爬虫状态【推荐】

    今天主要是来说一下怎么可视化来监控你的爬虫的状态. 相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样.今天我来讲一种可视化的方法. 关于爬虫数据在mongodb里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据. 1.成品图 这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M.爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样而已, 如下图. 可以

随机推荐