数据可视化之如何用Matplotlib画好看的图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化之如何用Matplotlib画好看的图相关的知识,希望对你有一定的参考价值。

参考技术A 【导语】有时候有些事情,我们无法用言语清晰的表达,我们可以通过图表。文不如表,表不如图。所以,可视化是数据分析中最重要的任务之一。python中有很多可视化的工具包,这篇文章主要围绕Matplotlib,需要的小伙伴可以做个参考。

Matplotlib 官方定义:Matplotlib是一个综合库,用于在Python中创建静态,动画和交互式可视化。

导入相关包, 测试数据是阿里的双十二用户行为 ,绘制按天的pv和uv用户浏览量的折线图。

图表说明:双十二期间,pv和uv访问量达到峰值,并且可以发现,uv和pv两个访问量数值差距比较大,同时,因为数据集总人数大约是10000人左右,因此,通过uv值可以分析出双十二期间淘宝用户的日活跃大概是45%浮动。

测试数据是饭店的综合评分,综合评分,口味评分,环境评分,服务评分,人均价格,绘制散点图,观察人均价格和分别对口味评分、环境评分、服务评分的关系。

图表说明:通过观察散点的离散程度,人均价格和服务、环境的相关性更大一些。

图表说明:通过热力图颜色的渐变程度,在影响综合评分的因素中,环境评分和口味评分呈现高度相关,人均价格呈现中度相关,人均价格则呈现极低的相关性。

实现方法:plt.pie(x,lables,autopct,shadow,startangle,colors,explode)

本篇文章主要归纳了Matplotlib的绘图方法,具体的使用还是要结合我们的业务数据。那么在企业中,可视化不仅仅能展现数据规律,挖掘有价值的信息;还可以监测数据异常指标;为建模提供一些想法,做一些预测等。

希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油。

Python 金融数据可视化(两列数据的提取//分别画//双坐标轴//双图//两种不同的图)

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(2000)
y = np.random.standard_normal((20,2))
# print(y)

\'\'\'
不同的求和
print(y.cumsum())
print(y.sum(axis=0))
print(y.cumsum(axis=0))
\'\'\'

# 绘图
plt.figure(figsize=(7,4))
plt.plot(y.cumsum(axis=0),linewidth=2.5)
plt.plot(y.cumsum(axis=0),\'bo\')

plt.grid(True)
plt.axis("tight")

plt.xlabel(\'index\')
plt.ylabel(\'values\')
plt.title(\'a simple plot\')

plt.show()

2.下面分别提取两组数据,进行绘图。

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(2000)
date = np.random.standard_normal((20,2))
y = date.cumsum(axis=0)

print(y)

# 重点下面两种情况的区别
print(y[1])      # 取得是 第1行的数据 [-0.37003581  1.74900181]
print(y[:,0])    # 取得是 第1列的数据 [ 1.73673761 -0.37003581  0.21302575  0.35026529 ...

# 绘图
plt.plot(y[:,0],lw=2.5,label="1st",color=\'blue\')
plt.plot(y[:,1],lw=2.5,label="2st",color=\'red\')
plt.plot(y,\'ro\')

# 添加细节
plt.title("A Simple Plot",size=20,color=\'red\')
plt.xlabel(\'Index\',size=20)
plt.ylabel(\'Values\',size=20)

# plt.axis(\'tight\')
plt.xlim(-1,21)
plt.ylim(np.min(y)-1,np.max(y)+1)

# 添加图例
plt.legend(loc=0)

plt.show()

3.双坐标轴。

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(2000)
date = np.random.standard_normal((20,2))
y = date.cumsum(axis=0)

y[:,0]=y[:,0]*100

fig,ax1 = plt.subplots()
plt.plot(y[:,0],\'b\',label="1st")
plt.plot(y[:,0],\'ro\')

plt.grid(True)
plt.axis(\'tight\')
plt.xlabel("Index")
plt.ylabel(\'Values of 1st\')
plt.title("This is double axis label")

plt.legend(loc=0)

ax2=ax1.twinx()
plt.plot(y[:,1],\'g\',label="2st")
plt.plot(y[:,1],\'r*\')
plt.ylabel("Values of 2st")
plt.legend(loc=0)

plt.show()

4. 分为两个图绘画。

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(2000)
date = np.random.standard_normal((20,2))
y = date.cumsum(axis=0)

y[:,0]=y[:,0]*100

plt.figure(figsize=(7,5))       # 确定图片大小
plt.subplot(211)                # 确定第一个图的位置 (行,列,第几个)两行一列第一个图

plt.plot(y[:,0],\'b\',label="1st")
plt.plot(y[:,0],\'ro\')

plt.grid(True)
plt.axis(\'tight\')
plt.xlabel("Index")
plt.ylabel(\'Values of 1st\')
plt.title("This is double axis label")

plt.legend(loc=0)

plt.subplot(212)               # 确定第一个图的位置
plt.plot(y[:,1],\'g\',label="2st")
plt.plot(y[:,1],\'r*\')
plt.ylabel("Values of 2st")
plt.legend(loc=0)

plt.show()

5.在两个图层中绘制两种不同的图(直线图立方图)

import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(2000)
date = np.random.standard_normal((20,2))
y = date.cumsum(axis=0)

y[:,0]=y[:,0]*100

plt.figure(figsize=(7,5))       # 确定图片大小
plt.subplot(121)                # 确定第一个图的位置

plt.plot(y[:,0],\'b\',label="1st")
plt.plot(y[:,0],\'ro\')

plt.grid(True)
plt.axis(\'tight\')
plt.xlabel("Index")
plt.ylabel(\'Values\',size=20)
plt.title("1st date set")

plt.legend(loc=0)

plt.subplot(122)               # 确定第一个图的位置
plt.bar(np.arange(len(y[:,1])),y[:,1],width = 0.5,color=\'g\',label="2nd")  # 直方图的画法
plt.grid(True)
plt.xlabel("Index")
plt.title(\'2nd date set\')
plt.legend(loc=0)

plt.show()

以上是关于数据可视化之如何用Matplotlib画好看的图的主要内容,如果未能解决你的问题,请参考以下文章

如何用matplotlib画多个独立窗口的图

如何用matplotlib画多个独立窗口的图

谁说 matplotlib 做不出好看的可视化

用python如何画出好看的地图

数据可视化 GIF 图,Matplotlib 也可以画出来

Python中除了matplotlib外还都有哪些数据可视化的库