IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python可视化学习十三(棒棒图) -> 正文阅读

[Python知识库]python可视化学习十三(棒棒图)

棒棒图就是条形图与散点图的结合

plt.hlines
重要的参数
y:绘图分y轴
xmin/xmax 条形图的起始点与终止点
color:条形的颜色
plt.scatter
重要的参数
x,y是横纵轴
s:散点的大小
c:散点的颜色
market:散点的形状

import numpy as np
import importlib as mpl
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
import matplotlib.patches as patches #导入补丁库
#读取数据
df=pd.read_csv('mtcars.csv')
#数据的处理
x=df.loc[:,['mpg']]#提取想要的数据
df['mpg_z']=(x-x.mean())/x.std() #标准化的处理
#df['color']=['red' if x<0 else 'green' for x in df['mpg_z']] #生成颜色的标签列
df['color']='black'
df.sort_values('mpg_z',inplace=True)
df.reset_index(inplace=True,drop=True)
df.head()

在这里插入图片描述

#绘制简单的棒棒图
plt.figure(figsize=(12,14),dpi=60)
#绘制棒棒图
plt.hlines(y=df.index,xmin=0,xmax=df.mpg_z,color=df.color,alpha=0.4,linewidth=1)
plt.scatter(df.mpg_z,df.index,color=df.color,s=300,alpha=0.6)
#添加装饰
#plt.gca().set(ylabel='$Model$', xlabel='$Mileage$')
plt.xlabel('mileage',fontsize=15)
plt.xticks(fontsize=15)
plt.yticks(df.index, df.cars, fontsize=15)
plt.title('Diverging Bars of Car Mileage', fontdict={'size':20})
plt.grid(linestyle='--', alpha=.5)
#plt.xlim(-2.5,2.5)
plt.show()

在这里插入图片描述
**

假如我们想强调其中的某一种车,以('fiat x1-9’为例,改变他的颜色以及尺寸)

**

#首先改变它的颜色
#df.loc[df.cars=='Fiat X1-9','color']
df.loc[df.cars == 'Fiat X1-9', 'color'] = 'darkorange'
#绘制简单的棒棒图
plt.figure(figsize=(12,14),dpi=60)
#绘制棒棒图突出尺寸
plt.hlines(y=df.index,xmin=0,xmax=df.mpg_z,color=df.color,alpha=0.4,linewidth=1)
plt.scatter(df.mpg_z,df.index,color=df.color,
           # s=30 
            s=[600 if i=='Fiat X1-9' else 300 for i in df.cars]  #使用列表的推导式
            ,alpha=0.6)
#添加装饰
#plt.gca().set(ylabel='$Model$', xlabel='$Mileage$')
plt.xlabel('mileage',fontsize=15)
plt.xticks(fontsize=15)
plt.yticks(df.index, df.cars, fontsize=15)
plt.title('Diverging lollipop of Car Mileage', fontdict={'size':20})
plt.grid(linestyle='--', alpha=.5)
#plt.xlim(-2.5,2.5)
plt.show()

在这里插入图片描述
#添加补丁
patches.Rectangle
重要的参数
xy:补丁左下角的位置坐标
width:补丁的宽度
height:补丁的高度
angle:补丁的角度
fill:是否填充
facecolor:补丁内部的颜色
edgecolor:补丁边框的颜色

#导入库
import matplotlib.patches as patches
#创建简单的补丁图
fig ,ax=plt.subplots(figsize=(8,5))
p=patches.Rectangle((.2,.2),width=.2,height=.3
                    #,fill=False  #就是不填充了
                    ,facecolor='g'
                    ,edgecolor='r'
                    ,alpha=.5
                    ,angle=60
)
#在子图上添加补丁
ax.add_patch(p);

在这里插入图片描述

####绘图并添加补丁#
#绘制简单的棒棒图
plt.figure(figsize=(12,14),dpi=60)
#绘制棒棒图突出尺寸
plt.hlines(y=df.index,xmin=0,xmax=df.mpg_z,color=df.color,alpha=0.4,linewidth=1)
plt.scatter(df.mpg_z,df.index,color=df.color,
           # s=30 
            s=[600 if i=='Fiat X1-9' else 300 for i in df.cars]  #使用列表的推导式
            ,alpha=0.6)
#创建补丁并添加到涂上去
p1=patches.Rectangle((1.5,27),width=.8,height=5,facecolor='g' ,edgecolor='r',alpha=.3)
p2=patches.Rectangle((-2.0,-1),width=.5,height=3,facecolor='r' ,edgecolor='g',alpha=.3)
#添加到子图里面去
plt.gca().add_patch(p1)
plt.gca().add_patch(p2);
#添加装饰
#plt.gca().set(ylabel='$Model$', xlabel='$Mileage$')
plt.xlabel('mileage',fontsize=15)
plt.xticks(fontsize=15)
plt.yticks(df.index, df.cars, fontsize=15)
plt.title('Diverging lollipop of Car Mileage', fontdict={'size':20})
plt.grid(linestyle='--', alpha=.5)
#plt.xlim(-2.5,2.5)
plt.show()

在这里插入图片描述
#####添加注释
plt_annotate
重要的参数
s注释的内容
xy注释的起始位置
xytest:文本的起始位置
xycoords:xy的坐标系(默认被使用注释对象的坐标系,即xycoords=‘data’)
arrowprops:用来设置箭头
facecolor:设置箭头的颜色
headlength:箭头的头的长度
headwidth:箭头的宽度
width:箭头的宽度

plt.figure(figsize=(10,8),dpi=60)
plt.annotate('arrow1',xy=(.3,.4),xytext=(.6,.4),xycoords='data',color='g',
             fontsize=20,alpha=.8,arrowprops=dict(arrowstyle='-[,widthB=3,lengthB=.8',lw=2,color='r',alpha=.7))

plt.annotate('arrow2',xy=(.2,.6),xytext=(.5,.7),color='w',
             bbox =dict(boxstyle='square',fc='b',ec='r',alpha=.7),
             fontsize=20,alpha=.8,arrowprops=dict(arrowstyle='->,head_length=1,head_width=1',lw=5,color='g',alpha=.7))

在这里插入图片描述

####绘图并添加补丁#
#绘制简单的棒棒图
plt.figure(figsize=(12,14),dpi=60)
#绘制棒棒图突出尺寸
plt.hlines(y=df.index,xmin=0,xmax=df.mpg_z,color=df.color,alpha=0.4,linewidth=1)
plt.scatter(df.mpg_z,df.index,color=df.color,
           # s=30 
            s=[600 if i=='Fiat X1-9' else 300 for i in df.cars]  #使用列表的推导式
            ,alpha=0.6)
#创建补丁并添加到涂上去
p1=patches.Rectangle((1.5,27),width=.8,height=5,facecolor='g' ,edgecolor='r',alpha=.3)
p2=patches.Rectangle((-2.0,-1),width=.5,height=3,facecolor='r' ,edgecolor='g',alpha=.3)
#添加到子图里面去
plt.gca().add_patch(p1)
plt.gca().add_patch(p2);
#添加注释
plt.annotate('Mercede Models',xy=(0,11),xytext=(1,11),xycoords='data',color='w',fontsize=20,ha='center',va='center',
             bbox=dict(boxstyle='square',fc='firebrick',ec='r',alpha=.7),
             alpha=.8,arrowprops=dict(arrowstyle='-[,widthB=1.5,lengthB=.8',lw=2,color='steelblue'))
#添加装饰
#plt.gca().set(ylabel='$Model$', xlabel='$Mileage$')
plt.xlabel('mileage',fontsize=15)
plt.xticks(fontsize=15)
plt.yticks(df.index, df.cars, fontsize=15)
plt.title('Diverging lollipop of Car Mileage', fontdict={'size':20})
plt.grid(linestyle='--', alpha=.5)
#plt.xlim(-2.5,2.5)
plt.show()

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 08:49:10  更:2021-11-26 08:50:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:51:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码