数据可视化实例(十七):包点图 (matplotlib,pandas)

Posted qiu-hua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化实例(十七):包点图 (matplotlib,pandas)相关的知识,希望对你有一定的参考价值。

排序 (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()                                                      # 显示图像

技术图片

 

以上是关于数据可视化实例(十七):包点图 (matplotlib,pandas)的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 可视化之图例与标签高级应用

Spark学习之路 (二十七)图简介

2021年大数据ELK(二十七):数据可视化(Visualize)

tableau可视化函数使用案例(六十七)-Tableau饼图及其变种(环形图南丁格尔玫瑰图旭日图)

tableau可视化函数使用案例(六十七)-Tableau饼图及其变种(环形图南丁格尔玫瑰图旭日图)

最有用的25个 Matplotlib图(含Python代码模板)