Python可视化-matplotlib用法详解(一)

一、折线图绘制

import pandas as pd
s='./../../data//unrate.csv'
unrate = pd.read_csv(s)
# 时间格式转换,
unrate['DATE'] = pd.to_datetime(unrate['DATE'])
print(unrate.head(12))
         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
10 1948-11-01    3.8
11 1948-12-01    4.0
import matplotlib.pyplot as plt
plt.plot()
plt.show()

在这里插入图片描述

first_twelve = unrate[0:12]
plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
plt.show()

在这里插入图片描述

plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
plt.xticks(rotation=45)  # 指定角度,
#print help(plt.xticks)
plt.show()

在这里插入图片描述

plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
plt.xticks(rotation=90)
plt.xlabel('Month')   # 横轴
plt.ylabel('Unemployment Rate') # 纵轴
plt.title('Monthly Unemployment Trends, 1948')  # 标题
plt.show()

在这里插入图片描述

二、漏斗图

# https://blog.csdn.net/yuetaope/article/details/123111188
from plotly import graph_objects as go
from plotly import io as piofig = go.Figure()fig.add_trace(go.Funnel(name = 'Montreal',y = ["浏览", "下载", "潜在客户", "询价"],x = [120, 60, 30, 20],textinfo = "value+percent initial"))fig.add_trace(go.Funnel(name = 'Toronto',orientation = "h",y = ["浏览", "下载", "潜在客户", "询价", "要约"],x = [100, 60, 40, 30, 20],textposition = "inside",textinfo = "value+percent previous"))fig.add_trace(go.Funnel(name = 'Vancouver',orientation = "h",y = ["浏览", "下载", "潜在客户", "询价", "要约", "成交"],x = [90, 70, 50, 30, 10, 5],textposition = "outside",textinfo = "value+percent total"))fig.show()
pio.write_image(fig, "1.png")

在这里插入图片描述

三、柱状图

import pandas as pd
reviews = pd.read_csv('../../data/fandango_scores.csv')
cols = ['FILM', 'RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue', 'Fandango_Stars']
norm_reviews = reviews[cols]
print(norm_reviews[:1])
                             FILM  RT_user_norm  Metacritic_user_nom  \
0  Avengers: Age of Ultron (2015)           4.3                 3.55   IMDB_norm  Fandango_Ratingvalue  Fandango_Stars  
0        3.9                   4.5             5.0  
import matplotlib.pyplot as plt
from numpy import arange
num_cols = ['RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue', 'Fandango_Stars']bar_heights = norm_reviews.loc[0, num_cols].values  #高度
print (bar_heights)
bar_positions = arange(5) + 0.75            # 柱形图的位置
print (bar_positions)                        
fig,ax = plt.subplots()       #  ax是轴,fig是控制图的样子                 
ax.bar(bar_positions, bar_heights, 0.5)     
plt.show()
[4.3 3.55 3.9 4.5 5.0]
[0.75 1.75 2.75 3.75 4.75]

在这里插入图片描述

num_cols = ['RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue', 'Fandango_Stars']
bar_heights = norm_reviews.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)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_widths = norm_reviews.loc[0, num_cols].values
bar_positions = arange(5) + 0.75
tick_positions = range(1,6)
fig, ax = plt.subplots()ax.barh(bar_positions, bar_widths, 0.5)  # 横着的ax.set_yticks(tick_positions)
ax.set_yticklabels(num_cols)
ax.set_ylabel('Rating Source')
ax.set_xlabel('Average Rating')
ax.set_title('Average User Rating For Avengers: Age of Ultron (2015)')
plt.show()

在这里插入图片描述

四、散点图

#Let's look at a plot that can help us visualize many points.
# 散点图
fig, ax = plt.subplots()
ax.scatter(norm_reviews['Fandango_Ratingvalue'], norm_reviews['RT_user_norm'])
ax.set_xlabel('Fandango')
ax.set_ylabel('Rotten Tomatoes')
plt.show()

在这里插入图片描述

#Switching Axes
fig = plt.figure(figsize=(5,10))
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)
ax1.scatter(norm_reviews['Fandango_Ratingvalue'], norm_reviews['RT_user_norm'])
ax1.set_xlabel('Fandango')
ax1.set_ylabel('Rotten Tomatoes')
ax2.scatter(norm_reviews['RT_user_norm'], norm_reviews['Fandango_Ratingvalue'])
ax2.set_xlabel('Rotten Tomatoes')
ax2.set_ylabel('Fandango')
plt.show()

在这里插入图片描述

参考资料

  • https://blog.csdn.net/qq_36439087/article/details/121527402

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/625561.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业数字化转型路径有哪些?

企业数字化转型是一个复杂而全面的过程,涉及到企业的多个方面,包括管理、运营、生产、销售等。企业数字化转型的路径可以概括为以下几个方面: 1、开展数字化评估 企业首先需要对自身的数字化基础水平、经营管理现状以及内外部转型资源进行全…

【C语言】每日一题,快速提升(2)!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 题目:杨氏矩阵 有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个…

性能测试 Jmeter 非 GUI 模式 -CLI 命令详解

我们在使用Jmeter做性能测试的时候,大部分同学用的是图形化界面进行脚本编写和执行性能测试的。但是其实真正在公司执行性能测试的时候,我们基本上不会用图形化界面去执行测试,这是因为工具渲染这些图形本身会让Jmeter结果存在很多不稳定的因…

什么样的开放式耳机好用?五大红榜超值机型力荐!

今年,市场上涌现出众多备受瞩目的开放式耳机产品,面对如此众多的选择,如何挑选出一款性能卓越、音质出色的开放式耳机,无疑成为了消费者们关注的焦点。传统的入耳式耳机虽然有其优势,但长时间佩戴往往会导致耳朵红肿胀…

STM32的GPIO端口的八种模式解析

目录 STM32的GPIO端口的八种模式解析 一、上拉输入模式 二、下拉输入模式 三、浮空输入模式 四、模拟输入模式 五、推挽输出模式 六、开漏输出模式 七、复用推挽输出模式 八、复用开漏输出模式 STM32的GPIO端口的八种模式解析 在学习STM32的过程中,GPIO端口…

LeetCode——965. 单值二叉树

题目- 力扣(LeetCode) 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 示例 1: 输入:[1,1,1,1,1,null,1] 输出&a…

YOLO-World: Real-Time Open-Vocabulary Object Detection 简介+安装+运行+训练(持续更新)

前言 YOLO_WORLD太牛了!!众所周知,传统是视觉目标检测一旦训练好后,如果我们需要增加新的识别目标的话,必须得重新训练模型。在生产中如果经常要新增检测目标,对时效性影响很大,而且随着数据量…

算法思想总结:链表

一、链表的常见技巧总结 二、两数相加 . - 力扣(LeetCode) class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点,方便尾插List…

pip如何查看Python某个包已发行所有版本号?

以matplotlib包为例子, pip install matplotlib6666 6666只是胡乱输入的一个数,反正输入任意一个不像版本号的数字都可以~ matplotlib所有版本号如下, 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1…

女上司问我:误删除PG百万条数据,可以闪回吗?

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 擅长主流数据Oracle、MySQL、PG、openGauss运维 备份恢复,安装迁移,性能优化、故障应急处理等可提供技术业务: 1.DB故障处理/疑难杂症远程支援 2.Mysql/PG/Oracl…

在 Vuex 中使用 TypeScript 时,如何有效地处理异步 action 和 mutation?

在 Vuex 中使用 TypeScript 处理异步 action 和 mutation 时,可以利用 TypeScript 的类型系统来确保类型安全和提高代码的可读性。以下是一些有效处理异步操作的方法: 定义异步 action 的类型: 使用 TypeScript 的泛型来定义 action 的 conte…

【RPC】

1. 什么是RPC框架 RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,允许调用不同进程空间的程序。RPC 的客户端和服务器可以在一台机器上,也可以在不同的机器上。程序员使用时,就像调用本地程序一样,无…