python简单代码画图两个库(python绘制两张图)
这几个常用的python库你需要知道
python可以说是近几年最火热、最实用的、最容易上手的工具之一了。功能强大、应用广泛,可以帮你搜集工作数据,还能帮你下载音乐,电影,于是就掀起了一波学习python的大潮,小编也毫不犹豫的加入了。但是对于向小编一样的小白来说,刚开始学习还是有些困难的,需要首先了解python的一些基础知识。所以小编就整理了一些常用的python库,希望对正在学习python的小伙伴有所帮助。
1.Matplotlib
Matplotlib是一个用于创建二维图和图形的底层库。藉由它的帮助,你可以构建各种不同的图标,从直方图和散点图到费笛卡尔坐标图。matplotlib能够与很多流行的绘图库结合使用。
2.Seaborn
Seaborn本质上是一个基于matplotlib库的高级API。它包含更适合处理图表的默认设置。此外,还有丰富的可视化库,包括一些复杂类型,如时间序列、联合分布图(jointplots)和小提琴图(violindiagrams)。
3.Plotly
Plotly是一个流行的库,它可以让你轻松构建复杂的图形。该软件包适用于交互式Web应用程,可实现轮廓图、三元图和三维图等视觉效果
4.Bokeh
Bokeh库使用JavaScript小部件在浏览器中创建交互式和可缩放的可视化。该库提供了多种图表集合,样式可能性(stylingpossibilities),链接图、添加小部件和定义回调等形式的交互能力,以及许多更有用的特性。
5.Pydot
Pydot是用纯Python编写的Graphviz接口,经常用于生成复杂的定向图和无向图,能够显示图形的结构,对于构建神经网络和基于决策树的算法时非常有效。
6.pyecharts
是基于百度开源的Echarts而开发的Python可视化工具。
pyecharts功能非常强大,支持多达400+地图;支持JupyterNotebook、JupyterLab;能够轻松集成至Flask,Sanic,Django等主流Web框架
7.AutoViz
数据可视化,大多数都需要把数据读取到内存中,然后对内存中的数据进行可视化。但是,对于真正令人头疼的是一次又一次的开发读取离线文件的数据接口。
而AutoViz就是用于解决这个痛点的,它真正的可以做到1行代码轻松实现可视化。对于txt、json、csv等主流离线数据格式能够同时兼容,经常用于机器学习、计算机视觉等涉及离线数据较多的应用场景。
8.Altair
Altair是一款基于Vega和Vega-Lite开发的统计可视化库。具有API简单、友好、一致等优点,使用起来非常方便,能够用最简短的代码实现数据可视化。
9.cufflinks
cufflinks结合了plotly的强大功能和panda的灵活性,可以方便地进行绘图,避免了数据可视化过程中,对数据存储结构和数据类型进行复杂的麻烦。
10Pygal
Pygal 的名气不是很大,使用图形框架语法来构建图像的。绘图目标比较简单,使用起来非常方便:实例化图片;用图片目标属性格式化;用 figure.add() 将数据添加到图片中即可。
Python中数据可视化经典库有哪些?
Python有很多经典的数据可视化库,比较经典的数据可视化库有下面几个。
matplotlib
是Python编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+,向应用程序嵌入式绘图提供了应用程序接口。
pyplot 是 matplotlib 的一个模块,它提供了一个类似 MATLAB 的接口。 matplotlib 被设计得用起来像 MATLAB,具有使用 Python 的能力。
优点:绘图质量高,可绘制出版物质量级别的图形。代码够简单,易于理解和扩展,使绘图变得轻松,通过Matplotlib可以很轻松地画一些或简单或复杂的图形,几行代码即可生成直方图、条形图、散点图、密度图等等,最重要的是免费和开源。
pandas
Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。需要说明的是它不是“熊猫”,名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。
优点:是Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观的处理关系型、标记型数据。对于数据分析专业人士,它是数据分析及可视化的利器。
seaborn
Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。
它是基于matplotlib更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,应该把Seaborn视为matplotlib的补充,而不是替代物,它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。
优点:matplotlib高度封装,代码量少,图表漂亮。比起matplotlib具有更美观、更现代的调色板设计等优点。scikit-plot
这是一个跟机器学习有效结合的绘图库。想要深入学习的小伙伴参见其github仓库,这里不再赘述了。
优点:Scikit-Plot是由ReiichiroNakano创建的用在机器学习的可视化工具,能最快速简洁的画出用Matplotlib要写很多行语句才能画出的图。关键是对于机器学习相关可视化处理,该库有较好的支持。
Networkx
networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法。图是由顶点、边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系。顶点和边也可以拥有更多的属性,以存储更多的信息。
优点:用于创建、操纵和研究复杂网络的结构、以及学习复杂网络的结构、功能及其动力学。
上面是我的回答,希望对您有所帮助!
Python中除了matplotlib外还有哪些数据可视化的库
数据可视化是展示数据、理解数据的有效手段,常用的Python数据可视化库如下:
1.Matplotlib:第一个Python可视化库,有许多别的程序库都是建立在其基础上或者直接调用该库,可以很方便地得到数据的大致信息,功能非常强大,但也非常复杂。
2.Seaborn:利用Matplotlib,用简洁的代码来制作好看的图表,与Matplotlib最大的区别为默认绘图风格和色彩搭配都具有现代美感。
3.ggplot:基于R的一个作图库的ggplot2,同时利用了源于《图像语法》中的概念,允许叠加不同的图层来完成一幅图,并不适用于制作非常个性化的图像,为操作的简洁度而牺牲了图像的复杂度。
4.Bokeh:与ggplot很相似,但与ggplot不同之处为它完全基于Python而不是从R处引用。长处在于能用于制作可交互、可直接用于网络的图表。图表可以输出为JSON对象、HTML文档或者可交互的网络应用。
5.Plotly:可以通过Python notebook使用,与bokeh一样致力于交互图表的制作,但提供在别的库中几乎没有的几种图表类型,如等值线图、树形图和三维图表。
6.pygal:与Bokeh和Plotly一样,提供可直接嵌入网络浏览器的可交互图像。与其他两者的主要区别在于可将图表输出为SVG格式,所有的图表都被封装成方法,且默认的风格也很漂亮,用几行代码就可以很容易地制作出漂亮的图表。
7.geoplotlib:用于制作地图和地理相关数据的工具箱。可用来制作多种地图,比如等值区域图、热度图、点密度图等,必须安装Pyglet方可使用。
8.missingno:用图像的方式快速评估数据缺失的情况,可根据数据的完整度对数据进行排序或过滤,或者根据热度图或树状图对数据进行修正。
用Python画图
今天开始琢磨用Python画图,没使用之前是一脸懵的,我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?
搜索之后发现,它会弹出一个对话框,然后就开始画了,比如下图
第一个常用的库是Turtle,它是Python语言中一个很流行的绘制图像的函数库,这个词的意思就是乌龟,你可以想象下一个小乌龟在一个x和y轴的平面坐标系里,从原点开始根据指令控制,爬行出来就是绘制的图形了。
??它最常用的指令就是旋转和移动,比如画个圆,就是绕着圆心移动;再比如上图这个怎么画呢,其实主要就两个命令:
turtle.forward(200)
turtle.left(170)
第一个命令是移动200个单位并画出来轨迹
第二个命令是画笔顺时针转170度,注意此时并没有移动,只是转角度
然后呢? 循环重复就画出来这个图了
好玩吧。
有需要仔细研究的可以看下这篇文章 ,这个牛人最后用这个库画个移动的钟表,太赞了。
Turtle虽好玩,但是我想要的是我给定数据,然后让它画图,这里就找到另一个常用的画图的库了。
Matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。其中,matplotlib的pyplot模块一般是最常用的,可以方便用户快速绘制二维图表。
使用起来也挺简单,
首先import matplotlib.pyplot as plt?导入画图的图。
然后给定x和y,用这个命令plt.plot(x, y)就能画图了,接着用plt.show()就可以把图形展示出来。
接着就是各种完善,比如加标题,设定x轴和y轴标签,范围,颜色,网格等等,在 这篇文章里介绍的很详细。
现在互联网的好处就是你需要什么内容,基本上都能搜索出来,而且还是免费的。
我为什么要研究这个呢?当然是为了用,比如我把比特币的曲线自己画出来可好?
假设现在有个数据csv文件,一列是日期,另一列是比特币的价格,那用这个命令画下:
这两列数据读到pandas中,日期为df['time']列,比特币价格为df['ini'],那我只要使用如下命令
plt.plot(df['time'], df['ini'])
plt.show()
就能得到如下图:
自己画的是不是很香,哈哈!
然后呢,我在上篇文章 中介绍过求Ahr999指数,那可不可以也放到这张图中呢?不就是加一条命令嘛
plt.plot(df['time'], df['Ahr999'])
图形如下:
但是,Ahr999指数怎么就一条线不动啊,?原来两个Y轴不一致,显示出来太怪了,需要用多Y轴,问题来了。
继续谷歌一下,把第二个Y轴放右边就行了,不过呢得使用多图,重新绘制
fig = plt.figure() # 多图
ax1 = fig.add_subplot(111)
ax1.plot(df['time'], df['ini'], label="BTC price")? #?绘制第一个图比特币价格
ax1.set_ylabel('BTC price') #?加上标签
# 第二个直接对称就行了
ax2 = ax1.twinx()#?在右边增加一个Y轴
ax2.plot(df['time'], df['Ahr999'], 'r', label="ahr999")??#?绘制第二个图Ahr999指数,红色
ax2.set_ylim([0, 50])# 设定第二个Y轴范围
ax2.set_ylabel('ahr999')
plt.grid(color="k", linestyle=":")# 网格
fig.legend(loc="center")#图例
plt.show()
跑起来看看效果,虽然丑了点,但终于跑通了。
这样就可以把所有指数都绘制到一张图中,等等,三个甚至多个Y轴怎么加?这又是一个问题,留给爱思考爱学习的你。
有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表。
Python语言画图
1)首先Python画图与WING IDE无关,最简单的是使用Tkinter画图
2)画出单词有很多方法,最笨的是用划线方式一笔一笔的画。其次是直接输出文本,但意义不大。另外一种方法是调用图片,你可以在图片上任意画好东西后显示出来。
3)代码示例:(这个例子就画了个简单的字母P)
from Tkinter import *
root=Tk()
root.title('Drawing Example')
canvas=Canvas(root,width=200,height=160,bg='white')
canvas.create_line(10,10,100,70)
canvas.create_line(10,10,40,10)
canvas.create_line(40,10,40,40)
canvas.create_line(10,40,40,40)
canvas.pack()
root.mainloop()