Python数据分析-可视化“大佬”之Matplotlib

Matplotlib——Python可视化包

折线图绘制

折线图适合二维的大数据集,还适合多个二维数据集的比较,主要是用于反映数据的发展趋势变化情况。

## 采用失业率的数据集进行绘制

import numpy as np
from numpy import arange
import pandas as pd
import matplotlib.pyplot as plt
dataSet = pd.read_csv("unrate.csv")
# print(dataSet)
dataSet['DATE'] = pd.to_datetime(dataSet['DATE'])
print(dataSet.head(10))

## 绘制折线图
plt.plot(dataSet['DATE'],dataSet['VALUE'])
plt.xticks(rotation=45)
## 添加x、y轴的标签
plt.xlabel("Month")
plt.ylabel("Unemployment Rate")
## 添加图标题
plt.title("Monthly Unemployment Trends, 1948")
plt.show()

Out:
    DATE  VALUE
0 1948-01-01    3.4
1 1948-02-01    3.8
2 1948-03-01    4.0
3 1948-04-01    3.9
4 1948-05-01    3.5
5 1948-06-01    3.6
6 1948-07-01    3.6
7 1948-08-01    3.9
8 1948-09-01    3.8
9 1948-10-01    3.7

## 在一个图中画出多个图
dataSet['MONTH'] = dataSet['DATE'].dt.month
dataSet['MONTH'] = dataSet['DATE'].dt.month

fig = plt.figure(figsize=(10,6))

colors = ['red','blue','green','yellow','black']

for i in range(5):
    start_index = i*12
    end_index = (i+1)*12
    subset = dataSet[start_index:end_index]
    label = str(1948+i*2)
    plt.plot(subset['MONTH'],subset['VALUE'],c=colors[i],label=label)

## 添加标注的位置,如果best,表示的是放在编译器认为组好的位置,center表示放在中间,等等还有其他的参数
plt.legend(loc='best')
plt.xlabel("MONTH")
plt.ylabel("Unemployment Rate")
## 添加图标题
plt.title("Monthly Unemployment Trends, 1948")
plt.show()

多子图的折线图

主要用于多个特征属性的发展趋势变化情况。

## 多子图
women_degrees = pd.read_csv('percent-bachelors-degrees-women-usa.csv')
stem_cats = ['Engineering', 'Computer Science', 'Psychology', 'Biology', 'Physical Sciences', 'Math and Statistics']
#Setting Line Width
cb_dark_blue = (0/255, 107/255, 164/255)
cb_orange = (255/255, 128/255, 14/255)
fig = plt.figure(figsize=(18, 3))

for sp in range(0,6):
    ax = fig.add_subplot(1,6,sp+1)
    ax.plot(women_degrees['Year'], women_degrees[stem_cats[sp]], c=cb_dark_blue, label='Women', linewidth=3)
    ax.plot(women_degrees['Year'], 100-women_degrees[stem_cats[sp]], c=cb_orange, label='Men', linewidth=3)
    for key,spine in ax.spines.items():
        spine.set_visible(False)
    ax.set_xlim(1968, 2011)
    ax.set_ylim(0,100)
    ax.set_title(stem_cats[sp])
    ## 去掉x、y轴的边框的线
    ax.tick_params(bottom=False, top=False, left=False, right=False)
plt.legend(loc='upper right')
plt.show()

柱形图的绘制

柱形图适用场合是二维数据集(每个数据点包括两个值x和y),但只有一个维度需要比较。主要是反映数据的差异,局限性是只限于中小规模的数据集

## 柱形图的绘制
data = pd.read_csv("fandango_scores.csv")
cols = ['FILM', 'RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue', 'Fandango_Stars']
norm_data = data[cols]
print(norm_data[:1])

#The Axes.bar() method has 2 required parameters, left and height.
#We use the left parameter to specify the x coordinates of the left sides of the bar.
#We use the height parameter to specify the height of each bar

num_cols = ['RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue', 'Fandango_Stars']
bar_heights = norm_data.loc[0, num_cols].values
bar_positions = arange(5) + 0.75
tick_positions = range(1,6)
fig, ax = plt.subplots()

ax.bar(bar_positions, bar_heights, 0.5)
ax.set_xticks(tick_positions)
ax.set_xticklabels(num_cols, rotation=45)

## 添加x、y轴图例以及标题
ax.set_xlabel('Rating Source')
ax.set_ylabel('Average Rating')
ax.set_title('Average User Rating For Avengers: Age of Ultron (2015)')
plt.show()

## 横向柱形图的绘制
import matplotlib.pyplot as plt
from numpy import arange
num_cols = ['RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue', 'Fandango_Stars']

bar_width = norm_data.loc[0,num_cols].values
bar_position = arange(5)+0.5
tick_position = range(1,6)
fig, ax = plt.subplots()

ax.barh(bar_positions, bar_width, 0.5)
ax.set_xticks(tick_positions)
ax.set_xticklabels(num_cols, rotation=45)

## 添加x、y轴图例以及标题
ax.set_xlabel('Rating Source')
ax.set_ylabel('Average Rating')
ax.set_title('Average User Rating For Avengers: Age of Ultron (2015)')
plt.show()

散点图

散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。散点图适用于三维数据集,但其中只有两维需要比较。主要用于显示所有的数据分布情况。

## 散点图的绘制
fig = plt.figure(figsize=(5,10))
subplot1 = fig.add_subplot(2,1,1)
subplot2 = fig.add_subplot(2,1,2)

subplot1.scatter(norm_data["Fandango_Ratingvalue"],norm_data['RT_user_norm'],c="red")
subplot1.set_xlabel('Fandango')
subplot1.set_ylabel('Rotten Tomatoes')
subplot1.set_title("Fig.1")

subplot2.scatter(norm_data["Fandango_Ratingvalue"],norm_data["Fandango_Ratingvalue"],c="green")
subplot2.set_xlabel('Rotten Tomatoes')
subplot2.set_ylabel('Fandango')
subplot2.set_title("Fig.2")
plt.show()

直方图
## toolbar
fig = plt.figure(figsize=(5,5))
subplot1 = fig.add_subplot(2,1,1)
subplot2 = fig.add_subplot(2,1,2)

subplot1.hist(norm_data["RT_user_norm"],bins=20,range=(0,5))
subplot1.set_title('Distribution of Fandango Ratings')
subplot1.set_ylim(0, 20)

subplot2.hist(norm_data['RT_user_norm'], 20, range=(0, 5))
subplot2.set_title('Distribution of Rotten Tomatoes Ratings')
subplot2.set_ylim(0, 30)

plt.show()

盒图
## 盒图的绘制
fig = plt.figure(figsize=(5,5))
subplot = fig.subplots()
num_cols = ['RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue']
subplot.boxplot(norm_data[num_cols].values)
subplot.set_xticklabels(num_cols,rotation=90)
subplot.set_ylim(0,5)
plt.show()

原文地址:https://www.cnblogs.com/cecilia-2019/p/11368238.html

时间: 2024-11-08 12:33:45

Python数据分析-可视化“大佬”之Matplotlib的相关文章

Python数据分析-可视化“大佬”之Seaborn

Seaborn 既然有了matplotlib,那为啥还需要seaborn呢?其实seaborn是在matplotlib基础上进行封装,Seaborn就是让困难的东西更加简单.用Matplotlib最大的困难是其默认的各种参数,而Seaborn则完全避免了这一问题.seaborn是针对统计绘图的,一般来说,seaborn能满足数据分析90%的绘图需求,复杂的自定义图形,还是要Matplotlib.Seaborn旨在使可视化成为探索和理解数据的核心部分.其面向数据集的绘图功能对包含整个数据集的数据框

Python——数据分析,Numpy,Pandas,matplotlib

由于图片内容太多,请拖动至新标签页再查看 Python--数据分析,Numpy,Pandas,matplotlib 原文地址:https://www.cnblogs.com/Jery-9527/p/10804069.html

python数据分析之numpy、matplotlib的使用

5.3 Python的科学计算包 - Numpy numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算.这个库的前身是1995年就开始开发的一个用于数组运算的库.经过了长时间的发展,基本上成了绝大部分Python科学计算的基础包,当然也包括所有提供Python接口的深度学习框架. numpy在Linux下的安装已经在5.1.2中作为例子讲过,Windows下也可以通过pip,或者到下面网址下载: Obtaining NumPy & Sci

python入门、python数据分析(numpy、matplotlib、sklearn等)tensflow、爬虫、机器学习、深度学习、自然语言处理、数据挖掘、机器学习项目实战、python全栈、PHP、java、java web、openCV、hadoop、matlab、android、数据结构算法和刷题等教学视频

扫描二维码加好友购买视频,绝对优惠,谢谢支持. python入门和进阶熟练教学视频 入门: 进阶: python数据分析教学视频 python数据分析晋级班 tensorflow教程及实战 python爬虫教学 机器学习课程 深度学习课程 机器学习项目班 自然语言处理教学视频 python全栈教学视频 数据挖掘视频 PHP教学视频 java java web openCV教学视频 Hadoop教学视频 matlab教学 andriod教学视频 数据结构算法班及面试班 原文地址:https://w

python数据分析工具 | matplotlib

不论是数据挖掘还是数学建模,都免不了数据可视化的问题.对于 Python 来说,matplotlib 是最著名的绘图库,它主要用于二维绘图,当然也可以进行简单的三维绘图.它不但提供了一整套和 Matlab 相似但更为丰富的命令,让我们可以非常快捷地用 python 可视化数据. matplotlib基础 # 安装 pip install matplotlib 两种绘图风格: MATLAB风格: 基本函数是 plot,分别取 x,y 的值,然后取到坐标(x,y)后,对不同的连续点进行连线. 面向对

Python数据分析、数据采集、数据可视化、图像数据处理分析视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

Python数据可视化库-Matplotlib(一)

今天我们来学习一下python的数据可视化库,Matplotlib,是一个Python的2D绘图库 通过这个库,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率图,条形图,错误图,散点图等等 废话不多说,我们直接通过例子来进行讲解. 首先我们有一组数据如下: 我们可以看到,这组数据有日期,还有日期对应的值,因为这组数据中的日期格式不是标准的日期格式 那么我们对数据做一下转换,取1948年的整年的数据,来进行一个绘图操作 import pandas as pd unrate = pd.rea

Python 数据可视化工具以及数据分析开发架构

Python 数据可视化进阶 Python数据可视化教程:基于 plotly 动态可视化绘图 ?https://edu.51cto.com/sd/4bff8 ? Python数据可视化教程 Seaborn ?https://edu.51cto.com/sd/19627 Python 数据分析实战 视频课程https://edu.51cto.com/sd/63225 Python数据可视化: pyecharts实战 ????? pyecharts 是一个用于生成 Echarts 图表的类库.Ech

【python数据分析实战】电影票房数据分析(二)数据可视化

目录 图1 每年的月票房走势图 图2 年票房总值.上映影片总数及观影人次 图3 单片总票房及日均票房 图4 单片票房及上映月份关系图 在上一部分<[python数据分析实战]电影票房数据分析(一)数据采集> 已经获取到了2011年至今的票房数据,并保存在了mysql中. 本文将在实操中讲解如何将mysql中的数据抽取出来并做成动态可视化. 图1 每年的月票房走势图 第一张图,我们要看一下每月的票房走势,毫无疑问要做成折线图,将近10年的票房数据放在一张图上展示. 数据抽取: 采集到的票房数据是