排序 (Ranking)

包点图 (Dot Plot)

包点图表传达了项目的排名顺序,并且由于它沿水平轴对齐,因此您可以更容易地看到点彼此之间的距离。

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

导入所需要的库

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) # 对'mpg_z这一列数据进行排序
df.reset_index(inplace = True) # 对排序后的数据重置索引 # step2: 绘制棒棒糖图
# 创建画布对象以及子图对象
fig,ax = plt.subplots(figsize = (16, 10), # 画布尺寸
facecolor = 'white', # 画布颜色
dpi = 80) # 分辨率
# 绘制柱状图
ax.hlines(y=df.index, # 纵坐标
xmin=11, # 柱状图在x轴的起点
xmax=26, # 柱状图在y轴的起点
color='gray', # 柱状图的颜色
alpha=0.7, # 透明度
linewidth=1, # 线宽
linestyles='dashdot') # 柱状图风格
# 绘制柱形图上的散点
ax.scatter(y=df.index, # 纵坐标
x=df.cty, # 横坐标
s=75, # 散点的尺寸
color='firebrick', # 颜色
alpha=0.7) # 透明度 # step3:装饰
# 设置标题、纵坐标的范围、横纵坐标的标题
ax.set_title('Dot Plot for Highway Mileage', # 设置标题以及字体大小
fontdict={'size':22})
ax.set_xlabel('Miles Per Gallon') # 设置x轴标签
ax.set_yticks(df.index) # 设置y轴标尺刻度
ax.set_yticklabels(df.manufacturer.str.title(), # 刻度标尺的内容(所有单词都是以大写开始,其余字母均为小写)
fontdict={'horizontalalignment': 'right'}) # 相对于刻度标水平对齐,且设置字体尺寸
ax.set_xlim(10, 27) # 设置x轴范围
plt.show() # 显示图像

最新文章

  1. 运行Maven工程总是报错:No goals have been specified for this build
  2. ios10.2真机调试包,ios升级10.2后需要添加
  3. 深入springMVC------文件上传源码解析(上篇)
  4. 转: Hibernate HQL查询 插入 更新(update)实例
  5. C语言学习010:fopen读写文件
  6. ARM指令集相关知识
  7. PHP大神的十大优良习惯
  8. I.MX6 Linux 自动获取AR1020 event input节点
  9. 理解position 绝对定位和相对定位
  10. GD库 图片缩略图 图片水印
  11. dubbo&hsf&spring-cloud简单介绍
  12. python实战第一天-环境的安装
  13. react 生命周期函数介绍
  14. windows+Pycharm+Anaconda下安装opencv
  15. docker私库Harbor部署(转载)
  16. EasyUI动画效果
  17. freeRTOS中文实用教程3--中断管理之计数信号量
  18. linux每日命令(35):grep命令
  19. 【转】JS中的call()和apply()方法
  20. Java归去来第2集:利用Eclipse创建Maven Web项目

热门文章

  1. (五)连接查询(SQL99标准)、子查询、分页查询、联合查询
  2. Tensorflow中Tensor对象的常用方法(持续更新)
  3. Asp.Net Core入门之自定义中间件
  4. 【JMeter_19】JMeter逻辑控制器__简单控制器<Simple Controller>
  5. Netty中的这些知识点,你需要知道!
  6. Day8-微信小程序实战-交友小程序-首页用户列表渲染及多账号调试及其点赞功能的实现
  7. TCP实战一(三握四挥、流量控制)
  8. Linux下如何寻找相同文件?
  9. nfiniband网卡安装、使用总结
  10. 3分钟看懂C#委托