在进行数据处理与分析时,数据可视化是重要的一部分,它能帮助我们更好的从繁杂的数据中更直观更有效的获取信息。 实际在用python模块进行绘图中,有两个使用最多的板块:
1. 使用matplotlib对图像的绘制:初次接触的时候我就感觉matplotlib跟matlab画的图表很相似,matplotlib模块中有很多绘图函数和matlab提供的函数有很多相似之处,例如:plot()、imshow()、matlab画出来的图有更多的锯齿现象,python下matplotlib画出来的效果会更加圆润。其中,用matlab快速生成函数十分方便,例如在matalb中使用ezplot()来绘制抛物线 y = x 2 y=x^2 y=x2:
ezplot('x^2',[-10,10])
然而,在Python中需要导入mpmath包,使用lambda函数表达式来绘制抛物线 y = x 2 y=x^2 y=x2:
import mpmath as mp
mp.plot(lambda x: x*x, [-10, 10])
除此之外:
1:matlab 不仅有ezplot,还有 ezmesh 这来快速生成三维函数的图像。
2:python 有一个 sympy 包,专门处理符号数学的,有点类似 matlab 里面的符号函数。
2:使用pandas和seaborn绘图:使用pandas对图像的绘制时非常普遍的,值得讨论的是在使用pandas进行数据读取后,可以直接对dataframe的表格进行绘图,简单来讲:在pandas中,我们有多列数据,还有行和列标签。pandas自身就有内置的方法,用于简化从DataFrame和Series绘制图形。也就是说:我们可以绘制以某一参数标准来绘制多项数据,例如:
df = pd.DataFrame(np.random.randn(10, 4).cumsum(0),
columns=['A', 'B', 'C', 'D'],
index=np.arange(0, 100, 10))
df.plot()
上图中,有index=np.arange(0, 100, 10)),也就是随机产生10个数作为自变量,有columns=[‘A’, ‘B’, ‘C’, ‘D’]四项因变量。相比matplotlib,这也是用pandas绘图的优点,减少了编写代码的时间,除此之外还可以操作dataframe表格使用:df.plot.bar()、df.plot.hist()、df.plot.density()进行绘制柱状图、直方图、密度图等。
为什么会使用seaborn绘图?
我觉得是为了美观。seaborn的绘制函数使用data参数,它可能是pandas的DataFrame。seaborn已经自动修改了图形的美观度:默认调色板,图形背景和网格线的颜色。你可以用seaborn.set在不同的图形外观之间切换。[太强了!]
这里用一个我前不久做商品销量的预测例子来解释,用seaborn来定义版图的网格。
#seaborn设置背景
# sns.set(color_codes=True)
图像就是:
【图像不算很好看哈哈哈!】
在学习《利用Python进行数据分析》这本数据处理与分析的必看书籍后,也留下了自己的思维导图,包括每个板块的函数调用方法,和一些图像绘图的使用技巧。
以下是本人学习绘图及可视化整理的思维导图(笔记):
PS: 若发现有更多绘图方法,后期会填充…
1 Matplotlib 绘图
学习链接: Matplotlib官网.
这里就简单介绍常用的plot()参数,plot()函数的一般的调用形式:
#单条线:
plot([x], y, [fmt], data=None, **kwargs)
#多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
参数[fmt] 是一个字符串来定义图的基本属性如:颜色(color),点型(marker),线型(linestyle)。
具体形式 :fmt = ‘[color][marker][line]’
例如:plot(x, y, ‘bo-’) 绘制的是蓝色圆点实线。
大家会有疑问了,’b‘,’o‘,’-‘又是什么?,接下来一一指出。
1.1 关键字参数color:
character color
============= ===============================
``'b'`` blue 蓝
``'g'`` green 绿
``'r'`` red 红
``'c'`` cyan 蓝绿
``'m'`` magenta 洋红
``'y'`` yellow 黄
``'k'`` black 黑
``'w'`` white 白
1.2 点型参数Markers:
character description
============= ===============================
``'.'`` point marker
``','`` pixel marker
``'o'`` circle marker
``'v'`` triangle_down marker
``'^'`` triangle_up marker
``'<'`` triangle_left marker
``'>'`` triangle_right marker
``'1'`` tri_down marker
``'2'`` tri_up marker
``'3'`` tri_left marker
``'4'`` tri_right marker
``'s'`` square marker
``'p'`` pentagon marker `
`'*'`` star marker
``'h'`` hexagon1 marker
``'H'`` hexagon2 marker
``'+'`` plus marker
``'x'`` x marker
``'D'`` diamond marker
``'d'`` thin_diamond marker
``'|'`` vline marker
``'_'`` hline marker
1.3 线型参数Line:
character description
============= ===============================
``'-'`` solid line style 实线
``'--'`` dashed line style 虚线
``'-.'`` dash-dot line style 点画线
``':'`` dotted line style 点线
以我们刚刚这个例子plot(x, y, ‘bo-’),来绘制图像。
后续我会长时期与数据处理与分析接触,也会慢慢学习用python实现机器学习的其他模块。
欢迎学习交流…
1 链接: Pandas-学习数据处理.
2 链接: Numpy-学习数据处理.