ggplot2

学习一时爽,一直学习一直爽

  Hello,大家好,我是 もうり,一个从无到有的技术+语言小白。

回忆复习

原文:https://blog.csdn.net/weixin_44510615/article/details/89579225

参考:https://blog.csdn.net/tanzuozhev/article/details/50822204

ggplot2 同时也是一个 R 包

ggplot2 的简介

pip 安装

ggplot2 是数据可视化的重要程序包,用于绘制各种高级统计图形。

ggplot2 命令的基本组成 具体来讲,在 ggplot2 程序包中,每一副图都是由若干组件组成的,这些组件包括:

  • data: 数据,必须为 data.frame。
  • coordinate system: 数据可视化,主要是在二维平面上表示数据的关系,所用坐标系一般为平面直角坐标,有时会用到极坐标、地图投影等。ggplot2 软件默认使用平面直角坐标。
  • geoms: 包括 geoms_开头的各种对象,用来绘制各种基本组件,包括点、线、面、多边形、柱状图、箱线图等。
  • aesthetics: 图形的美学特征,如颜色、形状、透明度、大小、分组等。
  • scales: 坐标轴的属性
  • stats: 统计变换。用于设定数据要进行的统计转换,例如平均值、中位数、记录数等。
  • facets: 描述如何将图形按照某一个或者几个因子(factors)不同水平(levels)用多个图形分开展示。

完整的 ggplot2 绘图命令, 总是以 ggplot() 开始。

ggplot() 及其参数奠定整个 ggplot2 图形的基础,最重要的两个参数为 data 和 mapping。

其中 data 必须为 data.frame 格式。mapping 参数要求数据通过 aes 函数进一步转换。

aes 是 aesthetic 的缩写。

在 aes 函数中,要输入的参数有 x, y, group, color, size 等。

aes 可以直接访问 data 参数所输入数据框的各列,从而直接控制图形的横坐标、纵坐标、分组以及各组的颜色、大小、透明度等等。

柱形图

from ggplot import *
p=ggplot(mpg,aes(x='hwy'))+geom_histogram()
print(p)
p=ggplot(mpg,aes(x='hwy',fill='factor(year)'))+geom_histogram(alpha=0.3,colour='black')
print(p)
p=ggplot(aes(x='factor(cyl)'), data=mtcars) + geom_bar()
print(p)
p=ggplot(aes(x='factor(cyl)'), data=mtcars)+geom_bar(fill='blue',alpha=0.2,width=0.4)
print(p)
p=ggplot(aes(x='factor(cyl)'), data=mtcars)+geom_histogram(fill='blue',alpha=0.2)
print(p)
p=ggplot(aes(x='factor(cyl)', fill='factor(gear)'), data=mtcars) + \
    geom_histogram()
print(p)
import pandas as pd
import numpy as np

df = pd.DataFrame({
    "x": np.random.normal(0, 10, 1000),
    "y": np.random.normal(0, 10, 1000),
    "z": np.random.normal(0, 10, 1000)
})
df = pd.melt(df)
p=ggplot(aes(x='value', fill='variable', color='variable'), data=df) + \
    geom_histogram(alpha=0.6)
print(p)
import pandas as pd
import numpy as np
from ggplot import *
df = pd.DataFrame({
    "x": np.random.normal(0, 10, 1000),
    "y": np.random.normal(0, 10, 1000),
    "z": np.random.normal(0, 10, 1000)
})
df = pd.melt(df)

p=ggplot(aes(x='value', fill='variable'), data=df) + \
    geom_histogram()+facet_grid('variable',)
print(p)

折线图

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "x": np.random.normal(0, 10, 1000),
    "y": np.random.normal(0, 10, 1000),
    "z": np.random.normal(0, 10, 1000)
})
df = pd.melt(df)

p=ggplot(aes(x='value', color='variable'), data=df) + \
    geom_density()
print(p)
q=ggplot(aes(x='value', color='variable', fill='variable'), data=df) + \
    geom_density(alpha=0.6)
print(q)
p=ggplot(mpg,aes(x='displ',y='hwy'))+geom_line(color='grey',size=2) 
print(p)
p=ggplot(mpg,aes(x='factor(displ)',y='hwy'))+geom_bar(stat='identity',width=0.8,fill='grey')
##stat='identity'是指不进行统计变换即hwy就是纵
#坐标值因为displ出现众多的重复值,所以分组更多,纵坐标值不断累加
#width为组距,fill为填充色
print(p)
p=ggplot(mpg,aes(x='displ'))+geom_bar(stat='density')
#一维密度,统计数量
print(p)
p=ggplot(mpg,aes(x='displ'))+geom_density()
#一维密度,统计数量
print(p)
p=ggplot(mpg,aes(x='displ',fill='fl'))+geom_histogram(binwidth=0.4,position='dodge')
#位置调整有问题
print(p)
p=ggplot(mpg,aes(x='displ'))+geom_histogram(fill='grey',binwidth=0.18,alpha=0.3)+geom_density(color='red',size=0.8)
print(p)
p=ggplot(mpg,aes(x='displ',color='factor(fl)'))+geom_density(size=0.5)+ylim(0,1)
print(p)
small=diamonds.sample(n=1000)
p=ggplot(aes(x='cut'),data=small)+geom_bar()+coord_flip()
print(p)
p=ggplot(aes(x='cyl'), data=mtcars)+geom_histogram(fill='blue',alpha=0.2)
print(p)
p=ggplot(aes(x='cyl'), data=mtcars)+geom_bar(fill='blue',alpha=0.2)
print(p)
p=ggplot(aes(x='pageviews'), data=pageviews) + \
    geom_histogram()
print(p)

本文分享自微信公众号 - Python之王(gh_70a22bfa8e3a),作者:小sen

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习开篇小菜

    本教程是本人尝试使用scikit-learn的一些经验,scikit-learn真的超级容易上手,简单实用。5分钟学会用调用基本的回归方法和集成方法应该是够了。

    润森
  • Python北京空气质量数据处理

    这是我接单的一个单,看了数据源,马发现很有印象,马上就知道来源kaggle中国北京上海广州成都,沈阳的Pm2.5数据集,对应的链接:https://www.ka...

    润森
  • 我用Python给你发了个短信验证码,你也来试试

    在互联网时代,为了保证操作的安全性,我们几乎所有的登录、注册等操作都需要用到短信验证码,一是为了防止自己的平台被机器频繁访问,加大服务压力,二是避免非本人操作带...

    润森
  • 2019全球AI 100强,中国占独角兽半壁江山,但忧患暗存

    日前,创投研究机构CB Insights发布了年度人工智能企业百强榜单——由100个最具前途的AI公司组成,它们从3000多个候选者中脱颖而出,其业务涵盖人工智...

    AI科技大本营
  • 腾讯AI又搞出大动作:Robotics X机器人实验室成立,签Nature办新AI大会

    No.1,宣布成立腾讯机器人实验室“Robotics X”。Robotics X将和AI Lab一起,成为腾讯AI产业的双基础支撑部门,成为腾讯探索虚拟世界与真...

    量子位
  • OpenAI肩负使命,宣布AI新计划

    镁客网
  • 医疗 AI 局中人:创业如命题作文,跑题只能得零分

    4月初,2019年国际医学人工智能论坛在上海举办。其中,智能化医疗器械监管分论坛尤其火爆,不大的会议室里挤满了听讲、拍照的人。可以看到的一个现象是,比起前两年的...

    AI掘金志
  • 微软推出AI打游戏大赛:比的是在Minecraft里合作

    李林 编译整理 量子位·QbitAI 出品 微软举办了一项比赛,想借此让研究人工智能的PhD们开发一个乐于合作的AI出来。具体的比赛形式呢,就是给AI随机分配几...

    量子位
  • AI计算量每年增长10倍,摩尔定律也顶不住 | OpenAI最新报告

    今天OpenAI更新了AI计算量报告,分析了自2012年以来AI算法消耗算力的情况。

    量子位
  • 【中国战队包揽234却无缘冠军】OpenAI 的 Dota2 机器人强在哪?

    【新智元导读】DOTA2 经典赛事TI7国际邀请赛决出最后冠军,中国团队虽占据234名但无缘冠军。回顾本届比赛,Open AI 的机器人因为战胜了人类玩家而大放...

    新智元

扫码关注云+社区

领取腾讯云代金券