【R和Python对比】matplotlib和ggplot(一)
来源:互联网 发布:123d make mac 编辑:程序博客网 时间:2024/05/03 15:30
接下来几天对比下R和py的作图功能。
R的ggplot可以说是各方面都很优秀的作图包,具有优雅的语法结构、多参数可变的调整和丰富的作图模式,然而ggplot学习起来较为复杂,而且在画图之前需要做一些繁琐的数据整形和处理工作,因为ggplot只接受长格式的数据,所以意味着需要把宽格式变长。
同样的,python的画图工具也有这个问题,不过更多的是把长数据变成宽数据,这两个画图还真的是配呢。
py的主要工具就是matplotlib,和pandas可以结合使用。
首先需要导入包:
import matplotlib.pyplot as plt
其实matplotlib单独使用的时候,也就是单独设置x,y可以理解为R中的基础绘图包,这时候,横轴和纵轴不一定需要再一个数据框中,比如:
fig=plt.figure() #画布ax=fig.add_subplot(1,1,1) #分面,如果不分就是1ax.plot(np.random.randn(1000).cumsum()) #散点图
看这段代码,第一个是新建画布,类似于R中plot新建一个空的,然后第二个类似于R中的mfrow,比如新建个四个图:
R中是
par(mfrow=c(2,2))
py中是
fig.axe=plt.subplots(2,2)
不过py好在不一定要按照顺序,比如我选择在右下角的地方画图:
fig,axe=plt.subplots(2,2)axe[1,1].plot(np.random.randn(1000).cumsum()) #散点图
下面就是一般的plot调参:
ax.set_xticks([0,250,500,750,1000]) #设置坐标轴标签ax.set_yticks([-10,0,10,20,30,40]) #设置坐标轴标签ax.set_xlabel('-x轴') #xlabelax.set_ylabel('y轴') #ylabelax.set_title('标题') #titleax.legend('图例',loc='beat') #图例ax.text(0,-10,'注解') #注解ax.axis([xmin,xmax,ymin,ymax]) #坐标轴limit
感觉比R的plot更加直观和简单。
下面针对数据框的数据进行画图,这块就对比ggplot了,还是iris数据集,如果R中针对’Sepal.Length’和’Sepal.Width’做散点图:
ggplot(data=iris)+geom_point(aes(x=iris$Speal.Length,y=iris$Sepal.Width,colour='black')+xlim(
而py中:
iris.loc[:,{'Sepal.Length','Sepal.Width'}].plot(kind='scatter', x='Sepal.Length', y='Sepal.Width', color='k', s=5, title='Scatter')
先选择这两列,然后选择kind=scatter,类似每次画图的时候ggplot都要加上geom_?来判定是什么图形一样。
当然也可以用基础画图方式来看:
plt.plot(iris['Sepal.Length'], iris['Sepal.Width'], 'ko', ms=2, label='S')plt.xlabel('Sepal.Length')plt.ylabel('Sepal.Width')plt.title('Iris_point')
但是就会比较麻烦。
同理,画一个线图:
iris['Sepal.Length'].plot(linewidth=0.5, alpha=0.9, color='k', ls='dashed', title='Sepal.Length')
大概的逻辑就是取需要画图的列,然后应用plot函数,然后在后面kind中选择具体的图形,下一章测试下其他图形
阅读全文
0 0
- 【R和Python对比】matplotlib和ggplot(一)
- 【R和Python对比】matplotlib和ggplot(二)
- 【R和Python对比】matplotlib和ggplot(三)
- R语言应用-ggplot和线性回归
- 【R和Python对比】数据整形
- R语言可视化---介绍一些强大的画图和数据处理包及函数(ggplot,melt())
- R语言:ggplot做条形图和线图尝试
- 【R语言学习笔记】探索ggplot的排列组合(一)
- 【R和Python对比】数据导入和初步整理
- 对比Python和C++的正则表达式函数 (一)
- R 画图之ggplot(1)
- 【R语言学习笔记】探索ggplot的排列组合:线图(一)
- python安装numpy和matplotlib
- 【Python】Matplotlib库(一)
- 对比java和python对比
- R 和 python浅析
- python和ruby对比
- Jython 和 Python 对比
- VS2015 安装.NET Core
- ThinkPHP中方法中的变量名不要跟方法名一致,否则查询会失败
- Java 中的引用
- 动手实操(二) | 作为一名美女设计师,她用 6 小时写了个上传七牛云的桌面客户端
- 在MyEclipse中更换或修改svn的用户名和密码
- 【R和Python对比】matplotlib和ggplot(一)
- 学习Javascript数据结构与算法系列笔记(二):栈
- 如何写出健壮的Java代码
- Rendering Problems Exception raised during rendering:
- Character Detection and Recognition 1-MSER
- IDHTTP中文乱码问题
- 简单的导航分页效果
- linux操作系统操作MySQL常用命令
- 最接近的三数之和 _LintCode