绘图及可视化

在进行数据处理与分析时,数据可视化是重要的一部分,它能帮助我们更好的从繁杂的数据中更直观更有效的获取信息。 实际在用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-学习数据处理.

猜你喜欢

转载自blog.csdn.net/qq_41709378/article/details/105675095