机器学习-数据可视化神器matplotlib学习之路(三)

以前学习了一些通用的画图方法和技巧,此次就学一下其它各类不一样类型的图。好了先从散点图开始,上代码:api

from matplotlib import pyplot as plt
import numpy as np

n = 1024 #生成1024个点
x = np.random.normal(0, 1, n) #正态分布x坐标,均值0标准差1
y = np.random.normal(0, 1, n) #正态分布y坐标,均值0标准差1
color = np.arctan2(y, x) #这个用于渲染好看的颜色,本身琢磨意义,哈哈
plt.scatter(x, #x坐标
            y, #y坐标
            s=50, #点的大小
            c=color, #颜色
            alpha=0.5, #透明度
            cmap='magma' #颜色板,看文档或者源码有不少类型,本身能够试试,如summer、winter、pink
            )
plt.show()

散点图仍是比较简单,关于一些经常使用设置,如坐标、图例、文字等能够看我以前的学习文章,还有就是不少参数这些看看api或者源码都能搞懂的。dom

接下来是简单用一下条形图:学习

from matplotlib import pyplot as plt
import numpy as np

n = 12
x = np.arange(12) #12个条形
y1 = np.random.uniform(1, 10, n) #分布1-10的高度
y2 = -np.random.uniform(1, 10, n) #分布(-1)-(-10)的高度
plt.bar(x, y1)
plt.bar(x, y2)

#接下来在条形上下方加上数值
for x0,y0 in zip(x, y1):
    plt.text(x0,
             y0,
             '%.2f' % y0, #保留两位小数
             ha='center', #水平对齐方式
             va='bottom' #垂直对齐方式
             )

for x0, y0 in zip(x, y2):
    plt.text(x0,
             y0,
             '%.2f' % y0,  # 保留两位小数
             ha='center',  # 水平对齐方式
             va='top'  # 垂直对齐方式
             )
plt.show()

好了,一个双层的条形图就完成了。其它还有什么饼图、直方图、等高线图等待不少,就不一一写出来了,接下来再弄一弄在一个figure显示多个图吧spa

其实很简单了,这里要用到subplot(n,m,d)将图分红n行m列,添加地d个格子的图像,接下来偷懒了,就用上面两个例子放一块儿就行了code

from matplotlib import pyplot as plt
import numpy as np

plt.figure(num=1, figsize=(12, 6))#设置figure属性,由于要放两张图,这里把宽度弄大点
plt.subplot(1, 2, 1)#1行2列第一个格子ax画图
n = 12
x = np.arange(12) #12个条形
y1 = np.random.uniform(1, 10, n) #分布1-10的高度
y2 = -np.random.uniform(1, 10, n) #分布(-1)-(-10)的高度
plt.bar(x, y1)
plt.bar(x, y2)

#接下来在条形上下方加上数值
for x0,y0 in zip(x, y1):
    plt.text(x0,
             y0,
             '%.2f' % y0, #保留两位小数
             ha='center', #水平对齐方式
             va='bottom' #垂直对齐方式
             )

for x0, y0 in zip(x, y2):
    plt.text(x0,
             y0,
             '%.2f' % y0,  # 保留两位小数
             ha='center',  # 水平对齐方式
             va='top'  # 垂直对齐方式
             )
#到这里都是第一个ax格子的图像

plt.subplot(1, 2, 2)#开始在的二个ax画图
n = 1024 #生成1024个点
x = np.random.normal(0, 1, n) #正态分布x坐标,在0-1范围
y = np.random.normal(0, 1, n) #正态分布y坐标,在0-1范围
color = np.arctan2(y, x) #这个用于渲染好看的颜色,本身琢磨意义,哈哈
plt.scatter(x, #x坐标
            y, #y坐标
            s=50, #点的大小
            c=color, #颜色
            alpha=0.5, #透明度
            cmap='magma' #颜色板,看文档或者源码有不少类型,本身能够试试,如summer、winter、pink
            )
plt.show()

 

plt.figure()里面还有不少属性,好比背景颜色板,x和y轴是否共享坐标等等,本身看api和源码吧。哈哈,今天就到这儿。orm

相关文章
相关标签/搜索