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中使用ggplot2 -> 正文阅读

[Python知识库]在python中使用ggplot2

python的ggplot2库:plotnine
>

一.安装方法:

pip install plotnine

使用的编译器:pycharm

二.plotnine绘图

1.第一个图形

除了导包的操作不一致,其他类似

from plotnine import ggplot, geom_point, aes, stat_smooth, facet_wrap
from plotnine.data import mtcars

(ggplot(mtcars, aes('wt', 'mpg', color='factor(gear)'))
 + geom_point()
 + stat_smooth(method='lm')
 + facet_wrap('~gear'))

如果你和我一样使用的是pycharm这个图形可能不会显示,我们需要先对其赋值,然后print出来

from plotnine import ggplot, geom_point, aes, stat_smooth, facet_wrap
from plotnine.data import mtcars

a = (ggplot(mtcars, aes('wt', 'mpg', color='factor(gear)'))
     + geom_point()
     + stat_smooth(method='lm')
     + facet_wrap('~gear'))
print(a)

image-20221028205058855

2.小提琴图+散点图+箱线图

先来看一下语法:

geom_violin(mapping=None, data=None, stat='ydensity', position='dodge',
            na_rm=False, inherit_aes=True, show_legend=None, raster=False,
            trim=True, scale='area', width=None, style='full',
            draw_quantiles=None, **kwargs)
AestheticDefault value
x
y
alpha1
color'#333333'
fill'white'
group
linetype'solid'
size0.5
weight1

首先我们生成一组数据:

import pandas as pd
import numpy as np
import pandas.api.types as pdtypes

from plotnine import *
from plotnine.data import *

np.random.seed(123)  # 设置随机数种子
n = 20
mu = (1, 2.3)
sigma = (1, 1.6)

before = np.random.normal(loc=mu[0], scale=sigma[0], size=n)
after = np.random.normal(loc=mu[1], scale=sigma[1], size=n)

df = pd.DataFrame({
    'value': np.hstack([before, after]),
    'when': np.repeat(['before', 'after'], n),
    'id': np.hstack([range(n), range(n)])
})

df['when'] = df['when'].astype(pdtypes.CategoricalDtype(categories=['before', 'after']))
print(df)

image-20221028210455149

先绘制一个小提琴图:

a = ggplot(df, aes("when", "value")) + geom_violin(df, aes(colour="when"))
print(a)

image-20221028211248392

在小提琴图的基础上加上散点

a = ggplot(df, aes("when", "value")) + geom_violin(df, aes(colour="when")) + geom_point()
print(a)

image-20221028211446051

小提琴在垂直轴上是对称的,半把小提琴和整把小提琴具有相同的信息。我们把小提琴切成两半,第一半用左半交替,第二半用右半交替。

a = ggplot(df, aes("when", "value")) + geom_violin(df, aes(colour="when"),style="left-right") + geom_point()
print(a)

image-20221028212144779

将这些点连接起来,以便了解数据是如何移动的。

a=(ggplot(df, aes('when', 'value'))
 + geom_violin(df, style='left-right') # changed
 + geom_point()
 + geom_line(aes(group='id'))          # new
)
print(a)

image-20221028212348413

3.使用theme添加主题

a = ggplot(df, aes("when", "value")) + geom_violin(df, aes(colour="when"),style="left-right") + geom_point() + geom_line(
    aes(group="id")) + theme_classic()
print(a)

image-20221028212601426

三.最终的图形

#%%
shift = 0.1


def alt_sign(x):
    "Alternate +1/-1 if x is even/odd"
    return (-1) ** x


m1 = aes(x=stage('when', after_scale='x+shift*alt_sign(x)'))  # shift outward
m2 = aes(x=stage('when', after_scale='x-shift*alt_sign(x)'), group='id')  # shift inward
lsize = 0.65
fill_alpha = 0.7

(ggplot(df, aes('when', 'value', fill='when'))
 + geom_violin(m1, style='left-right', alpha=fill_alpha, size=lsize, show_legend=False)
 + geom_point(m2, color='none', alpha=fill_alpha, size=2, show_legend=False)
 + geom_line(m2, color='gray', size=lsize, alpha=0.6)
 + geom_boxplot(width=shift, alpha=fill_alpha, size=lsize, show_legend=False)
 + scale_fill_manual(values=['dodgerblue', 'darkorange'])
 + theme_classic()
 + theme(figure_size=(8, 6))
 )

image-20221028213215123

[参考链接]:API Reference — plotnine 0.10.1 documentation

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:52:04  更:2022-10-31 11:52:55 
 
开发: 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年12日历 -2024/12/26 3:16:33-

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