偏差 (Deviation)

有序条形图 (Ordered Bar Chart)

有序条形图有效地传达了项目的排名顺序。 但是,在图表上方添加度量标准的值,用户可以从图表本身获取精确信息。

https://datawhalechina.github.io/pms50/#/chapter15/chapter15

导入所需要的库

import numpy as np              # 导入numpy库
import pandas as pd # 导入pandas库
import matplotlib as mpl # 导入matplotlib库
import matplotlib.pyplot as plt
import seaborn as sns # 导入seaborn库

设定图像各种属性

large = 22; med = 16; small = 12

params = {'axes.titlesize': large,    # 设置子图上的标题字体
'legend.fontsize': med, # 设置图例的字体
'figure.figsize': (16, 10), # 设置图像的画布
'axes.labelsize': med, # 设置标签的字体
'xtick.labelsize': med, # 设置x轴上的标尺的字体
'ytick.labelsize': med, # 设置整个画布的标题字体
'figure.titlesize': large}
plt.rcParams.update(params) # 更新默认属性
plt.style.use('seaborn-whitegrid') # 设定整体风格
sns.set_style("white") # 设定整体背景风格

程序代码

# step1:导入数据
df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")
df = df_raw[['cty', 'manufacturer']].groupby('manufacturer').apply(lambda x:x.mean())
df.sort_values('cty', inplace = True)
df.reset_index(inplace = True) # step2:绘制有序条形图
# 创建画布对象以及子图对象
fig,ax = plt.subplots(figsize = (16, 10), # 画布尺寸
facecolor = 'white', # 画布颜色
dpi = 80) # 分辨率
# 绘制柱状图
ax.vlines(x = df.index, # 横坐标
ymin = 0, # 柱状图在y轴的起点
ymax = df.cty, # 柱状图在y轴的终点
color = 'firebrick', # 柱状图的颜色
alpha = 0.7, # 柱状图的透明度
linewidth = 20) # 柱状图的线宽 # step3:添加文本
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,
for i, cty, in enumerate(df.cty):
ax.text(i, # 文本的横坐标位置
cty+0.5, # 文本的纵坐标位置
round(cty, 1), # 对文本中数据保留一位小数
horizontalalignment = 'center') # 相对于xy轴,水平对齐 # step4:装饰
ax.set_title('Bar Chart for Highway Mileage', # 子图标题名称
fontdict = {'size': 22}) # 标题字体尺寸
ax.set(ylabel = 'Miles Per Gallon', # 纵坐标的标题名称
ylim = (0,30)) # 纵坐标的取值范围
# 横坐标的刻度标尺
plt.xticks(df.index, # 横坐标的刻度位置
df.manufacturer.str.upper(), # 刻度标尺的内容(先转化为字符串,再转换为大写)
rotation = 60, # 旋转角度
horizontalalignment = 'right', # 相对于刻度标尺右移
fontsize = 12) # 字体尺寸 # step5:添加补丁
# 添加绿色的补丁
p1 = patches.Rectangle((0.57, -0.005), # 矩形左下角坐标
width = 0.33, # 矩形的宽度
height = 0.13, # 矩形的高度
alpha = 0.1, # 矩阵的透明度
facecolor = 'green', # 是否填充矩阵(设置为绿色)
transform = fig.transFigure) # 保持矩形显示在图像最上方
# 添加红色的补丁
p2 = patches.Rectangle((0.124, -0.005), # 矩形左下角坐标
width = 0.446, # 矩形的宽度
height = 0.13, # 矩形的高度
alpha = 0.1, # 矩阵的透明度
facecolor = 'red', # 是否填充矩阵(设置为红色)
transform = fig.transFigure) # 保持矩形显示在图像最上方
# 将补丁添加至画布
fig.add_artist(p1) # 将p1添加至画布上
fig.add_artist(p2) # 将p2添加至画布上
plt.show() # 显示图像

matplotlib.pyplot.vlines

matplotlib.pyplot.vlines(x, ymin, ymax, colors='k', linestyles='solid', label='', *, data=None, **kwargs)[源代码]

绘制垂直线。

在每个位置绘制垂直线 x 从 ymin 到 ymax .

参数:
x : 标量或一维数组

x-绘制线条的索引。

YMIN,YMAX : 标量或一维数组

每行的开始和结束。如果提供标量,则所有行的长度都相同。

colors : 类似颜色的数组,可选,默认值:“k”
直线运动 : 'solid'、'dashdot'、'dashdot'、'dotted',可选
标签 : 字符串,可选,默认:“”
返回:
线 : LineCollection : LineCollection
其他参数:
**kwargs : LineCollection 性质。 : LineCollection属性。

最新文章

  1. 创建 OVS flat network - 每天5分钟玩转 OpenStack(134)
  2. mongodb全套配置
  3. 常用的数据统计Sql 总结
  4. AllanCodeMaker 代码生成器 release0.9.0 下载 支持C#,Java,可自订模板
  5. 在Gradle中使用jaxb的xjc插件
  6. matlab坐标外围背景变白色
  7. google应用商店的解决
  8. CodeForces 300C --数论
  9. Javascript 数组与字典
  10. Codeforces 603A Alternative Thinking
  11. 关于使用iframe标签自适应高度的使用
  12. 使用mysql_query()方法操纵数据库以及综合实例
  13. How to decompile class file in Java and Eclipse - Javap command example(转)
  14. box-sizing的不同属性值间的区别
  15. jQuery点击下拉菜单的展示与隐藏
  16. CTF---密码学入门第一题 这里没有key
  17. oracle erp 表结构
  18. Openssl的证书操作
  19. 【EF6学习笔记】(三)排序、过滤查询及分页
  20. 浅谈linux线程切换问题

热门文章

  1. (五)pom文件详解
  2. OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码)
  3. Java 源码刨析 - 线程的状态有哪些?它是如何工作的?
  4. MySQL的使用方法和视图、索引、以及存储过程的一些简单方法
  5. Windows下6款实用软件(强烈推荐!)
  6. JSON Web令牌(JWT)介绍与使用
  7. 搜索引擎ElasticSearch入门
  8. 流媒体学习计划表——pr
  9. ECSHOP 2.5.1 二次开发文档【文件结构说明和数据库表分析】
  10. iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name