python openc 帧间差分法_python使用Plotnine绘图

3649b1bf56af9dc94ce0898b0b8c5b3d.png

adce4a6047f0f06a587a6712698f544d.png

Plotnine

plotnine主张模块间的协调与分工,整个plotnine的语法如下:主要包括数据绘图、美化细节

  • 采用图层的设计,有利于使用结构化思维实现数据可视化;

    • 有明确的起始(ggplot()开始)与终止;

    • 图层之间叠加是靠+实现,越往后,其图层越在上方;

    • 一个geomxx()函数或statxx()函数可以绘制一个图层;

  • 将表征数据和图形细节分开,能快速将图形表现出来,使创造性的绘图更加容易实现。

    • 通过stat_xx()将常见的统计变换融入绘图中;

plotnine包

  • 使用pip install plotnine 安装;

  • 使用from plotnine import *导入;

  • 使用from plotnine data import * 导入plotnine包自带的数据集;

plotnine绘图基本语法结构

  1. ggplot():底层绘图函数;

  • Data为数据集,主要是数据框( data.frame)格式的数据集;

  • Mapping表示变量映射,用来表示变量X和Y,还可以用来控制颜色(color)、大小(size)、形状(shape);

  1. geomxx()|statxx():几何图层或统计变换;

  • 比如常见的:

    • 散点图geompoint()

    • 柱形图geombar()

    • 直方图geomhistogram()

    • 箱形图geomboxplot()

    • 折线图geom_line()等

  • 通常使用geom_xx()可以绘制大部分图表,有时候通过设定stat参数实现统计变换;

plotnine中可选的图表输入信息包括:

主要用于实现对于图表的美化和变换等;

  1. scale_xx():度量调整,调整具体的度量:

  • 颜色(color)、大小(size)、形状(shape);

  • 与mapping的映射变量相对应;

  1. coord_xx():笛卡尔坐标系;

  • plotnine无法实现极坐标系和地理空间坐标系;

  1. facet_xx():分面系统,将某个变量进行分面变换;

  • 包括俺行、列或网格等形式分面绘图;

  1. guides():图例调整,主要包括连续型和离散型两种类型的图例;

  2. theme():主题设定,主要调整图表的细节,包括图表背景颜色、网格线的间隔与颜色;

plotnline绘图函数分类

2f5a5b3dfb0026a1e08d99b2dea6b488.png

604c4cc2c83f46fb209f841c57061d3c.png

美学参数映射

plotnine可作为变量的美学映射参数包括:

  1. color/col/colour、fill和alpha;

  • 属性都是与颜色相关的美学参数;

  • color/col/colour是点(point)、线(line)和填充区域(region)轮廓的颜色;

  • fill是指定填充区域(region)的颜色;

  • alpha是指定颜色的透明度,数值范围是从0(完全透明)到1(不透明);

  1. size:

  • 点(point)的尺寸或线的(line)宽度,默认单位为mm,可以在geom_point()函数绘制的散点图基础上,添加size的映射,从而实现气泡图;

  1. angle:

  • 角度,只有部分几何对象有;

  • geomtext()函数中文本的摆放角度、geomspoke()函数中短棒摆放角度;

  1. vjust和hjust;

  • 与位置调整有关的美学参数;

  • vjust--垂直位置微调,在(0,1)区间的数字;

  • 位置字符串:0="buttom",0.5="middle",1="top",区间外的数字微调比例控制不均;

  • hjust---水平位置微调,在(0,1)区间的数字;

  • 位置字符串:0="buttom",0.5="middle",1="top",区间外的数字微调比例控制不均:

  1. linetype:

  • 指定线条的类型;

    • 白线 0="blank";

    • 实线 1="solid";

    • 短虚线 2="dashed";

    • 点线 3="dotted";

    • 点横线 4="dotdash";

    • 长虚线 5="longdash";

    • 短长虚线 6="twodash";

  1. shape:

  • 指点(point)的形状;

  • 为[0,25]区间的26个整数,分别对应方形、圆形、三角形、菱形等26种不同形状;

plotnine常见函数的主要美学映射参数

ecb0c874610f845d20ef3674e91aba4e.png

plotnine用例:

import pandas as pd

import numpy as np

from plotnine import *

#from plotnine.data import *

import matplotlib.pyplot as plt

import matplotlib

#plt.rc('font',family='Times New Roman')

matplotlib.rcParams['font.family'] = 'Times New Roman'

df=pd.read_csv("d:/python/out/FacetD.csv")

#age映射到点的大小size--

p1=(ggplot(df, aes(x='SOD',y='tau',size='age')) +

geom_point(shape='o',color="black",

fill="#336A97",stroke=0.25,alpha=0.8)+

theme(text=element_text(size=12,colour = "black"),

aspect_ratio =1,

dpi=100,

figure_size=(4,4))) #shape=21,color="black",fill="red",size=3,stroke=0.1

print(p1)

#p1.save("plotnine1.pdf")

age映射到点的大小size和填充颜色fill

import pandas as pd

import numpy as np

from plotnine import *

#from plotnine.data import *

import matplotlib.pyplot as plt

import matplotlib

#plt.rc('font',family='Times New Roman')

matplotlib.rcParams['font.family'] = 'Times New Roman'

df=pd.read_csv("d:/python/out/FacetD.csv")

#-age映射到点的大小size和填充颜色fill

p2=(ggplot(df, aes(x='SOD',y='tau',size='age',fill='age')) +

geom_point(shape='o',color="black",stroke=0.25, alpha=0.8)+

#scale_fill_distiller(type='seq', palette='blues') +

theme(text=element_text(size=12,colour = "black"),

aspect_ratio =1,

dpi=100,

figure_size=(4,4))) #shape=21,color="black",fill="red",size=3,stroke=0.1

print(p2)

#p2.save("plotnine2.pdf")

age和Class分别映射到点的大小size和颜色fill

import pandas as pd

import numpy as np

from plotnine import *

#from plotnine.data import *

import matplotlib.pyplot as plt

import matplotlib

#plt.rc('font',family='Times New Roman')

matplotlib.rcParams['font.family'] = 'Times New Roman'

df=pd.read_csv("d:/python/out/FacetD.csv")

#age和Class分别映射到点的大小size和颜色fill--

p4=(ggplot(df, aes(x='SOD',y='tau',size='age',fill='Class')) +

geom_point(shape='o',colour="black",stroke=0.25, alpha=0.8)+

#scale_fill_hue(s = 0.90, l = 0.65, h=0.0417,color_space='husl')+

theme(text=element_text(size=12,colour = "black"),

aspect_ratio =1,

dpi=100,

figure_size=(4,4))) #shape=21,color="black",fill="red",size=3,stroke=0.1

print(p4)

p4.save("plotnine4.pdf")

文件比较

今天需要比较两个excel文件,因此就用difference函数完成文件比较。

#文件比较

import pandas as pd

df1=pd.read_csv('d:/python/out/cut628a_out.csv',encoding='utf8')

df2=pd.read_csv('d:/python/out/cut628b_out.csv',encoding='utf8')

s1=set([tuple(values) for values in df1.values.tolist()])#将数据帧转换为集合

s2=set([tuple(values) for values in df2.values.tolist()])

s1.symmetric_difference(s2)#检查s1和s2的区别

print (pd.DataFrame(list(s1.difference(s2))),'\n')

print (pd.DataFrame(list(s2.difference(s1))),'\n')

文件合并

#合并文件

import pandas as pd

df1=pd.read_csv('d:/python/out/cut628a_out.csv',encoding='utf8')

df2=pd.read_csv('d:/python/out/cut628b_out.csv',encoding='utf8')

result=pd.concat([df1,df2])

print(result)

学习小结:今天学习plotnine绘图基本语法框架,并通过案例了解不同的美学参数映射效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值