一、matplotlib库
1、基本绘图命令
import matplotlib.pyplot as plt plt.figure(figsize=(5,4)) #设置图形大小 plt.rcParams['axes.unicode_minus']=False #正常显示负号 plt.rcParams['font.sans-self']=['Kai Ti'] #设置字体,这里是楷体,SimHei表示黑体 #基本统计图 plt.bar(x,y);plt.pie(y,labels=x);plt.plot(x,y); plt.hist(df.身高) #若参数density=True则是频率直方图
3、图形参数设置
颜色: plt.plot(x,y,c=‘red') #参数c控制颜色
横纵坐标轴范围: plt.xlim(0,100),plt.ylim(0,8)
横纵坐标轴名称: plt.xlabel(),plt.ylabel()
横纵坐标轴刻度: plt.xticks(range(len(x)),x)
线形和符号: plt.plot(x,y,linestyle='–',marker=‘o') #实线:'-' ;虚线:'–'; '.'指点线
附加参考线: plt.axvline(x=1);plt.axhline(y=4)
文字标注: plt.text(3,5,‘peak point') #参数表示:坐标+文字
图例: plt.plot(x,y,label=‘折线');plt.legend()
分面绘图:
#一行两图 plt.subplot(121) plt.bar(x,y) plt.subplot(122) plt.plot(x,y) #一页多图 fig,ax=plt.subplots(2,2,figsize=(15,12)) # 2行2列放4个图,figsize控制大小 ax[0,0].bar(x,y);ax[0,1].plot(x,y); ax[1,0].pie(x,y);ax[1,1].plot(y,'.',linewidth=3)
具体的参数color、linestyle、图例位置设置
颜色字符(color)
字符
代表颜色
r
红色
b
蓝色
g
绿色
w
白色
c
青色
m
洋红
y
黄色
k
黑色
风格字符(linestyle)
字符
代表风格
- (一个连字符)
实线
– (两个连字符)
虚线
-.
点划线
:
点虚线
' '
留空,空格
loc 参数(以matplotlib添加图例为例说明位置)
loc string
loc code
位置
"best"
0
右上角(默认)
“upper right”
1
右上角
“upper left”
2
左上角
“lower left”
3
左下角
“lower right”
4
右下角
"right"
5
中右侧
“center left”
6
中左侧
“center right”
7
中右侧
“low center”
8
中下方
“upper center”
9
中上方
“center”
10
中间
4、特殊统计图的绘制
4.1 数学函数图
import matplotlib.pyplot as plt #加载基本绘图包 plt.rcParams['font.sans-serif']=['SimHei']; #SimHei黑体 plt.rcParams['axes.unicode_minus']=False; #正常显示图中负号 import numpy as np #加载软件包numpy import math #加载软件包math x=np.linspace(0,2*math.pi);x #生成[0,2*pi]序列 ,作为横坐标取值 plt.plot(x,np.sin(x)) #y=sinx 正弦函数 plt.plot(x,np.cos(x)) #y=cosx 余弦函数 plt.plot(x,np.log(x)) #y=lnx #对数函数 plt.plot(x,np.exp(x)) #y=e^x 指数函数
数学函数也可以用pandas库绘制,可详见我的另一篇博客:文章链接
#极坐标图 t=np.linspace(0,2*math.pi) x=3*np.sin(t); y=5*np.cos(t) plt.plot(x,y); plt.text(0,0,r'$\frac{x^2}{3^2}+\frac{y^2}{5^2}=1$',fontsize=20) #python借鉴的LATEX的格式,可以直接在图中添加公式
4.2 气泡图
import pandas as pd df=pd.read_excel('data.xlsx') plt.scatter(df['身高'], df['体重'], s=df['支出']) #在散点图的基础上加上点的大小,例子中s=df['支出']就是将指各样本点支出越多,点面积就越大
4.3 三维曲面图
from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = Axes3D(fig) X = np.arange(-4, 4, 0.5) Y = np.arange(-4, 4, 0.5) X, Y = np.meshgrid(X, Y) Z = (X**2+ Y**2) ax.plot_surface(X, Y, Z) #该图像就是表示函数z=x^2+y^2
二、seaborn库
1、常用统计图
1.1 箱线图
import seaborn as sns #加载软件包seaborn #箱线图 sns.boxplot(x=df['身高']) #竖着放的箱线图,也就是将 x 换成 y sns.boxplot(y=df['身高']) #分组绘制箱线图 sns.boxplot(x='性别', y='身高',data=df) #将身高按性别分组后绘制
1.2 小提琴图
sns.violinplot(x='性别', y='支出', data=df) #箱线图的变种,可以加第三个类别参数hue
1.3 点图
sns.stripplot(x='性别', y='身高', data=df, jitter=True) #分组的数据(定性+定量)画的点图,jitter参数为True表示将点分散开来,默认为false
1.4 条图与计数图
#条图,即柱形图 sns.barplot(x='性别', y='身高', data=df, ci=0, palette="Blues_d") #palette用于设置颜色 #计数图 sns.countplot(x='性别', hue="开设", data=df) #都是分类变量
1.5 分组图
#按性别、开设依次分组后计数,aspect指比例大小 sns.factorplot(x='性别', col="开设", col_wrap=3, data=df, kind="count", size=2.5, aspect=.8)
1.6 概率分布图
#displot:直方图+密度函数,bins表示分的组数,kde=False表示不画出密度曲线,rug表示有数据的地方就标注出来 sns.distplot(df['身高'], kde=True, bins=20, rug=True) #自定义渐进正态函数图像 def norm_sim2(N=1000,n=10): xbar=np.zeros(N) for i in range(N): xbar[i]=np.random.uniform(0,1,n).mean()#[0,1]上均匀随机数均值 sns.distplot(xbar,bins=50) print(pd.DataFrame(xbar).describe().T) norm_sim2(N=100000,n=50)
2、联合图
sns.jointplot(x='身高', y='体重', data=df)#画的散点图+单个变量的直方图
3、配对图
#针对多个变量,两两配对,画在一起 sns.pairplot(df[['身高','体重','支出']]) #将各变量间关系共放一张图上,在多元统计分析中很有用
三、ggplot库
ggplot库是采用的绘画中图层的思想,即一层一层往上叠加,先画好坐标,再添线,再增加其他操作,最后用 + 号连接起来,操作起来更有逻辑章法,语句简洁。ggplot新包是plotnine,与R语言的ggplot2对应,使用起来更方便,故直接import plotnine即可,里面的函数使用与ggplot是基本一样的
1、图层画法+常用图形
绘制直角坐标系和字体
GP=ggplot(aes(x='身高',y='体重'),data=df)
在此基础上增加线图
GP + geom_line()+ theme_grey(base_family = 'SimHei')#还可以再往上叠加,+geom_point()就是在折线图基础上加上散点图
改为有三个变量的点图,不同类型画不同记号(shape)/颜色(color)
ggplot(df,aes(x='身高',y='体重',color='性别'))+geom_point()+ theme_grey(base_family = 'SimHei')
改为分面图:
用pandas绘制分组统计图还需要先groupby,ggplot一步到位更加简便
ggplot(df,aes(x='身高',y='体重'))+geom_point()+facet_wrap('性别') + theme_grey(base_family = 'SimHei') #facet_wrap('性别')表示按性别分成两组画分面图
此外,+theme_bw()等可以设置图片背景、主题
2、快速绘图
ggplot也可以像pandas一样,在qplot函数中设置参数geom的取值而直接改变图像类型
#快速绘制直方图 qplot(x='身高',data=df, geom='histogram')+ theme_grey(base_family = 'SimHei') #快速绘制柱形图 qplot('开设',data=df, geom='bar')+ theme_grey(base_family = 'SimHei') #默认散点图 qplot('身高', '体重', data=df, color='性别') + theme_grey(base_family = 'SimHei')
以上是基于《python数据分析基础教程 王斌会》整理的学习笔记,还有许多参数设置没有写明,以及pyecharts 动态图神器,日后学习了再一点点补充吧~
python,可视化
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]