可视化学习笔记
2020-08-30 本文已影响0人
Elena_fan
Matplotlib绘图模块学习笔记
老师指路->https://www.jianshu.com/u/1f32f227da5f
使用工具:Anaconda-jupyter
一、Matplotlib绘图模块学习笔记
1、折线图
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline #魔法函数-展示图像
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
X = np.linspace(0, 2*np.pi,100)# 均匀的划分数据
Y = np.sin(X)
Y1 = np.cos(X)
plt.title("Hello World!!")
plt.plot(X,Y)
plt.plot(X,Y1)
#plt.show()
matplot1.png
绘制子图
X = np.linspace(0, 2*np.pi,100)
Y = np.sin(X)
Y1 = np.cos(X)
plt.subplot(211) # 等价于 subplot(2,1,1)
plt.plot(X,Y)
plt.subplot(212)
plt.plot(X,Y1,color = 'r')
matplot2.png
2、柱状图
柱状图一般用来统计一些类型的数量,例如不同产品的销售额。柱状图一般有两种,一个是传统的,一个是叠加的。
data = [5,25,50,20]
plt.bar(range(len(data)),data)
#x=[0,1,2,3]
#plt.bar(x,data)
#四个产品销量情况
matbar1.png
多个柱状图
data = [[5,25,50,20],
[4,23,51,17],
[6,22,52,19]]
X = np.arange(4)
plt.bar(X + 0.00, data[0], color = 'b', width = 0.25,label = "A")
plt.bar(X + 0.25, data[1], color = 'g', width = 0.25,label = "B")
plt.bar(X + 0.50, data[2], color = 'y', width = 0.25,label = "C")
# 显示上面设置的 lable
plt.legend()
#四个季度、三个产品销量
matbars.png
叠加柱状图
data = [[5,25,50,20],
[4,23,51,17],
[6,22,52,19]]
X = np.arange(4)
plt.bar(X, data[0], color = 'b', width = 0.25)
plt.bar(X, data[1], color = 'g', width = 0.25,bottom = data[0])
plt.bar(X, data[2], color = 'y', width = 0.25,bottom = np.array(data[0]) + np.array(data[1]))
plt.show()
matbarb.png
3、散点图
散点图用来衡量两个连续变量之间的相关性
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y)
mats1.png
颜色大小区分
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.randn(N) # 颜色可以用数值表示
area = np.pi * (15 * np.random.rand(N))**2 # 调整大小
plt.scatter(x, y, c=colors, alpha=0.5, s = area)
mats2.png
4、直方图
直方图是用来衡量连续变量的概率分布的。在构建直方图之前,我们需要先定义好bin(值的范围),先把连续值划分成不同等份,然后计算每一份里面数据的数量。
#举例,绘制一个班级身高分布,150-170有多少人,170-180多少人,绘制频率分布
a = np.random.rand(100)
plt.hist(a,bins= 20)
plt.ylim(0,15)
mathist.png
5、盒图
boxlot用于表达连续特征的百分位数分布。统计学上经常被用于检测单变量的异常值,或者用于检查离散特征和连续特征的关系
boxplot1.png
x = np.random.randint(20,100,size = (30,3))
plt.boxplot(x)
plt.ylim(0,120)
# 在x轴的什么位置填一个 label,我们这里制定在 1,2,3 位置,写上 A,B,C
plt.xticks([1,2,3],['A','B','C'])
plt.hlines(y = np.median(x,axis = 0)[0] ,xmin =0,xmax=3)
boxplot2.png
Pandas直接绘图
df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])
# 绘制柱状图
df.plot.bar()
pdbar.png
pyecharts绘图
可鼠标点击互动
pyecharts 绘图的五个步骤:
1、创建图形对象
2、添加绘图数据
3、配置系列参数
4、配置全局参数
5、渲染图片
from pyecharts.charts import Bar
from pyecharts import options as opts
# l.创建一个柱形图对象
bar = Bar()
# 2.开始添加各个轴的数据
bar.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
bar.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
# 3.配置系列参数:对标签、线型等的一些设置
# 4.配置全局参数:对x、y轴、提示框等参数配置
bar.set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
# 5.渲染
# 生成本地 HTML 文件,默认会在当前目录生成 render.html 文件,也可以传入路径参数,如 bar.render("mycharts.html")
# bar.render()
# notebook 渲染
bar.render_notebook()
pyecharts.png
词云图
from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType
words = [
("Sam S Club", 10000),
("Macys", 6181),
("Amy Schumer", 4386),
("Jurassic World", 4055),
("Charter Communications", 2467),
("Chick Fil A", 2244),
("Planet Fitness", 1868),
("Pitch Perfect", 1484),
("Express", 1112),
("Home", 865),
("Johnny Depp", 847),
("Lena Dunham", 582),
("Lewis Hamilton", 555),
("KXAN", 550),
("Mary Ellen Mark", 462),
("Farrah Abraham", 366),
("Rita Ora", 360),
("Serena Williams", 282),
("NCAA baseball tournament", 273),
("Point Break", 265),
]
wordcloud = (
WordCloud()
.add("", words, word_size_range=[20, 100])
.set_global_opts(title_opts=opts.TitleOpts(title="WordCloud-基本示例"))
)
wordcloud.render_notebook()
词云图