python数据可视化笔记(一)

文章目录

\color{orange}{一.设置颜色和样式}
\color{#0FAC0A}{1.线型}
\color{orange}{2.标记风格}
\color{#A3A20A}{3.样式字符串}
\color{#DF2C07}{二.画散点图}
\color{#0FA123}{三.画函数图像}
\color{#0E6346}{四.画折线图}
\color{#0AAC0A}{五.画条形图}
\color{red}{六.画直方图}
\color{#0FBB2A}{七.画饼状图}
\color{#23456D}{八.画箱型图}
\color{orange}{九.Reference}

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


一.设置颜色和样式

  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
o Circle
v Triangle down (倒三角)
^ Triangle up
< Triangle left
> Triangle right
1 Tripod down
2 Tripod up
3 Tripod left
4 Tripod right
s Square
p Pentagon (五边形)
* Star
h Hexagon (六边形)
H Rotated hexagon
D Diamond
d Thin diamond
Vertical line
_ Horizontal line (下划线)
+ Plus
x Cross (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

八.画箱型图

(箱型图能显示出一组数据的最大值、最小值、中位数、及上下四分位数。)

在这里插入图片描述

------------------------------------------------------------

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容