python数据可视化笔记(一)

(点击目录没反应的话,可以用浏览器打开文章,这样就可以跳转到相应位置了)

如果因为参数缺少说明或代码注释不到位导致理解困难的话非常抱歉~推荐一个视频教程,有很多笔记源于上面的教程,有不清楚的地方也可以去上面的教程看一看~


一.设置颜色和样式

  1. 八种内建颜色缩写
    b: blue
    g: green
    r: red
    c: cyan(青色,介于绿色和蓝色之间)
    m: magenta(洋红色,介于红色和紫色之间)
    y: yellow
    k: black
    w: white
  2. html十六进制表示颜色
  3. rgb元组
  4. 灰色阴影表示
import numpy as np
from matplotlib import pyplot as plt

y=np.arange(1,5)
plt.plot(y,color='m')
plt.plot(y+1,color='#CFA02F')
plt.plot(y+2,color=(0.2,0.4,0.5))
plt.plot(y+3,color='0.8')  # 0.8代表灰色的深度
plt.show()

1

1.线型
符号含义
-实线
短线
-.短点相间线
虚点线
import numpy as np
from matplotlib import pyplot as plt

y=np.arange(1,5)
plt.plot(y,'-')
plt.plot(y+1,'--')
plt.plot(y+1.5,'-.')
plt.plot(y+2,':')
plt.show()

6

2.标记风格
符号含义
.Point
,Pixel
oCircle
vTriangle down (倒三角)
^Triangle up
<Triangle left
>Triangle right
1Tripod down
2Tripod up
3Tripod left
4Tripod right
sSquare
pPentagon (五边形)
*Star
hHexagon (六边形)
HRotated hexagon
DDiamond
dThin diamond
|Vertical line
_Horizontal line (下划线)
+Plus
xCross (x)
import numpy as np
from matplotlib import pyplot as plt

y=np.arange(1,5)
#因为参数的取值是唯一的,所以不用明确写出marker='3'(标记风格)
#但是明确写出marker='3'的话,它会帮你把线也给画出来,而不只是描点
plt.plot(y,'3')
plt.plot(y+1,'D')
plt.plot(y+1.5,'h')
plt.plot(y+2,'2')
plt.show()

5

3.样式字符串

可以把颜色,点型,线型写出一个字符串(顺序没关系,因为参数的取值是唯一的)
比如’co–'代表青色+圆形+虚线
'+y’代表加号+黄色

7


二.画散点图

import numpy as np
from matplotlib import pyplot as plt

X=np.random.randint(10,10000,1000)
Y=np.random.randint(10,10000,1000)
plt.scatter(X,Y,s=20,c='r',alpha=0.5)  #散点图,s是点的大小(面积),默认是20,c是颜色,alpha是透明度
plt.show()

7


三.画函数图像

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simhei.ttf", size=14)
x = np.arange(1, 11,)
y = -2 * x + 5
plt.title("Matplotlib demo")
plt.xlabel("x轴",FontProperties=font)
plt.ylabel("y axis caption",FontProperties=font)
plt.plot(x, y,'go--',linewidth=2)# g代表绿色,o代表点的形状,--代表线的形状
plt.show()

1

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
#设置字体
font = FontProperties(fname=r"c:\windows\fonts\simhei.ttf", size=14)
x = np.arange(0,4*np.pi,.1)
y = np.sin(x)
plt.title("Sin Wave Form")
plt.xlabel("x轴",FontProperties=font)
plt.ylabel("y轴",FontProperties=font)
plt.plot(x, y,'go--',linewidth=2)
plt.show()

2


import numpy as np 
import matplotlib.pyplot as plt 
# 计算正弦和余弦曲线上的点的 x 和 y 坐标 
x = np.arange(-np.pi,  np.pi,  0.1) 
y_sin = np.sin(x) 
y_cos = np.cos(x)  
# 建立 subplot 网格,高为 2,宽为 1  
# 激活第一个 subplot
plt.subplot(2,  1,  1)  
# 绘制第一个图像 
plt.plot(x, y_sin) 
plt.title('Sine')  
# 将第二个 subplot 激活,并绘制第二个图像
plt.subplot(2,  1,  2) 
plt.plot(x, y_cos) 
plt.title('Cosine')  
# 展示图像
plt.show()

2


四.画折线图

import numpy as np
from matplotlib import pyplot as plt
from datetime import datetime
from matplotlib import dates
import time

def convert_to_tic(s):
    return time.mktime(datetime.strptime(s.decode('ascii'), "%Y-%m-%d").timetuple())
'''
numpy.loadtxt()参数:

skiprows跳过的行数,比如为2时跳过前2行

usecols是指明使用哪几列数据

converters:该参数是将某一列的数据进行函数预处理再获取,格式为:{列号:函数},可以看成一个字典形式,对列上的所有数据进行函数处理

unpack:选择是否将数据向量输出,默认是False,即将数据逐行输出,当设置为True时,数据将逐列输出。
'''   
date,open,close=np.loadtxt('data.csv',delimiter=',',converters={0:convert_to_tic},
                           skiprows=1,usecols=(0,1,3),unpack=True)
#data.csv是股票数据,可以百度获取。                          
'''
设置日期显示格式
'''
date = [datetime.fromtimestamp(element) for element in date]
time_formatter = dates.DateFormatter("%Y-%m-%d")
plt.axes().xaxis.set_major_formatter(time_formatter)
plt.plot(date,open,'m<-')
#plt.plot_date(date,open)
plt.show()

8


五.画条形图

绘制竖直条形图

import numpy as np
from matplotlib import pyplot as plt

N=5
y=[20,10,30,25,15]
index=np.arange(N)
'''
left为x轴的位置序列(index)
height为y轴的数值序列,也就是柱形图的高度(y)
width为柱形图的宽度
'''
plt.bar(index,y,color='red',width=0.5)
plt.show()

9

绘制水平条形图

import numpy as np
from matplotlib import pyplot as plt

N=5
y=[20,10,30,25,15]
index=np.arange(N)
plt.barh(index,y,color='green',height=0.8)
plt.show()

10

多个条形图

import numpy as np
from matplotlib import pyplot as plt

N=5
y=[20,10,30,25,15]
y2=[14,30,22,18,25]
index=np.arange(N)
'''
left为x轴的位置序列(index)
height为y轴的数值序列,也就是柱形图的高度(y)
width为柱形图的宽度
'''
plt.bar(index,y,color='red',width=0.3)
plt.bar(index+0.3,y2,color='yellow',width=0.3)
plt.show()

11

层叠图

import numpy as np
from matplotlib import pyplot as plt

N=5
y=[20,10,30,25,15]
y2=[14,30,22,18,25]
index=np.arange(N)
'''
left为x轴的位置序列(index)
height为y轴的数值序列,也就是柱形图的高度(y)
width为柱形图的宽度
'''
plt.bar(index,y,color='red',width=0.3)
plt.bar(index,y2,color='yellow',width=0.3,bottom=y)
plt.show()

12


六.画直方图

单变量直方图(用高度表示频率大小)

import numpy as np
from matplotlib import pyplot as plt

average=100
devation=20
X=average+devation*np.random.randn(1000)  #在服从标准正态分布的数据中取1000个随机数
'''
画直方图函数的参数:
bins:长方形的数目
normed :为True是频率图,False是频数图,默认为False
'''
plt.hist(X,bins=10,color='red',normed=True)
plt.show()

12

双变量直方图(用颜色深浅表示频率大小)

import numpy as np
from matplotlib import pyplot as plt

x=np.random.randn(1000)+2
y=np.random.randn(1000)+5
plt.hist2d(x,y,bins=30)
plt.show()

13


七.画饼状图

import matplotlib.pyplot as plt

label=['A','B','C','D']    #标签
fracs=[15,30,45,10]        #比例
plt.axes(aspect=1)
explode=[0,0.05,0.08,0]  #可以理解为扇形圆心到整个圆的圆心之间的距离
plt.pie(x=fracs,labels=label,autopct='%.0f%%',explode=explode,shadow=True)      
#autopct确定输出格式 ,%%表示一个'%'
plt.show()

2


八.画箱型图

(箱型图能显示出一组数据的最大值、最小值、中位数、及上下四分位数。)
在这里插入图片描述
------------------------------ 来 自 维 基 百 科 1 来自维基百科^1 1------------------------------

import matplotlib.pyplot as plt
import numpy as np
labels=['A','B','C','D','E']
np.random.seed(1)
data=np.random.normal(size=(1000,5))     #默认随机数服从正态分布(loc=0,scale=1)
'''
sym 调整好异常值的点的形状
whis 默认是1.5, 通过调整数值来设置异常值显示的数量,
如果想显示尽可能多的异常值,whis设置很小,否则很大
'''
plt.boxplot(data,labels=labels,sym='o',whis=1.25)
plt.show()

3


九.Reference

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值