简单使用matplotlib绘图

创建空白画板

创建空白画板,暂时没有数据:

import matplotlib.pyplot as plt
import numpy as np
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
plt.plot()
plt.show()

图示:
在这里插入图片描述

绘制一条线的图

创建画板,然后生成1到10之间的10个数字,然后取3的余数。

import matplotlib.pyplot as plt
import numpy as np
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,10)

plt.plot(data,data%3)
plt.show()

图示:
在这里插入图片描述

给图添加座标系等注释信息

添加座标系的解释,和图的信息

import matplotlib.pyplot as plt
import numpy as np
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,10)

plt.plot(data,data%3,label=" test legend")
plt.title("data test")
plt.xlabel("this is x")
plt.ylabel("this is y")
plt.legend()
plt.show()

图示:
在这里插入图片描述

增加多条线

另外增加两条直线,到同一个画中。

import matplotlib.pyplot as plt
import numpy as np
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,10)

plt.plot(data,data%3,label=" test legend:  data%3 ")
plt.plot(data,data/3,label=" test legend:  data/3 ")
plt.plot(data,data/3-1,label=" test legend:  data/3-1 ")
plt.title("data test")
plt.xlabel("this is x")
plt.ylabel("this is y")
plt.legend()
plt.show()

在这里插入图片描述

绘制子图

将上面的三条线拆分成为三个图。

import matplotlib.pyplot as plt
import numpy as np
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,10)
def set_xy():
    plt.title("data test")
    plt.xlabel("this is x")
    plt.ylabel("this is y")
    plt.legend()
# 指定位置,设定子图二维座标,五行一列总共5个子图。  下面三个子图只取第一,三,五这三个位置
plt.subplot(5,1,1)
#下面这个新加的’r' 意思为red,将线条显示为红色
plt.plot(data,data%3,'r',label=" test legend:  data%3 ")
set_xy()
plt.subplot(5,1,3)
plt.plot(data,data/3,'g',label=" test legend:  data/3 ")
set_xy()
plt.subplot(5,1,5)
plt.plot(data,data/3-1,'m',label=" test legend:  data/3-1 ")
set_xy()
plt.show()

图示:
在这里插入图片描述
解释一下subplot的功能:
子图将当前数字划分为按行编号的矩形窗格。 每个窗格都包含一个轴对象,您可以使用轴属性来操作它们。 随后的图被输出到当前窗格。
h =subplot(m,n,p)
m 代表行
 n 代表列
 p 代表的这个图形画在第几行、第几列。

subplot的使用方法:
h =subplot(m,n,p)
将数字窗口分成m×n的网格,
并在当前图的第p个位置创建一个轴对象,并返回轴句柄。
座标轴沿着图形窗口的第一行,然后是第二行等。

例如 subplot(2,2,1)
  表示一个2行2列的画布上,你用第一行第一列画图。
  如图:(直接拿百度经验的图和解释)
  地址:https://jingyan.baidu.com/article/915fc414ad794b51394b20e1.html
在这里插入图片描述

常用图绘制之散点图

喜欢自定义绘图就直接使用matplotlib,但是参数设置过多,需要大量时间来熟悉。为了方便可以采取基于matplotlib API封装的第三方python库seaborn,更方便的绘制漂亮的常用图形。

下面在1到10之间生产100个连续间隔相同的数据作为x座标,然后给这100个数据随机生成符合标准正态分布的数据。总共组成100个点。

import matplotlib.pyplot as plt
import numpy as np
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,500)
plt.scatter(data,np.random.randn(500),s=10,color='b')
plt.legend()
plt.show()

图示:
在这里插入图片描述
重要数据加大字体和其他颜色显示出来

import matplotlib.pyplot as plt
import numpy as np
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,500)
plt.scatter(data,np.random.randn(500),s=10,color='b',alpha=0.65,label='data')
plt.scatter(3,1.3,s=50,color="r",alpha=1,label="red ")
plt.scatter(2,-2.3,s=50,color="g",alpha=1,label = 'green')
plt.legend()
plt.show()

图示:
在这里插入图片描述

常用图绘制之条形图

准备一个数据文件:data.csv

date,score
2012-01-01,0.08
2012-02-01,0.1
2012-03-01,0.13
2012-04-01,0.14
2012-05-01,0.16
2012-06-01,0.16
2012-07-01,0.16
2012-08-01,0.13
2012-09-01,0.14
2012-10-01,0.16
2012-11-01,0.16
2012-12-01,0.16

顺便把条形图的数值加上:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
#解决中文显示问题
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
df = pd.read_csv("date.csv")
print(df)
#将DataFrame对象转换成列表
df = df.values
for x,y in df:
    #alpha 透明度
    plt.bar(x,y,color='g',align='center' ,alpha=0.3 )
    plt.text(x,y,y,color='b',ha='center', va= 'bottom',fontsize=12)
plt.title("数据条形图")
plt.legend()
plt.show()

在这里插入图片描述
座标系重叠,可以把x轴数据旋转325度
plt.xticks(rotation=325)

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 绘制子图
fig = plt.figure(figsize=(10,6.18))
#解决中文显示问题
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
df = pd.read_csv("date.csv")
print(df)
#将DataFrame对象转换成列表
df = df.values
for x,y in df:
    #alpha 透明度
    plt.bar(x,y,color='g',align='center' ,alpha=0.3 )
    plt.text(x,y,y,color='b',ha='center', va= 'bottom',fontsize=12)
plt.title("数据条形图")
plt.xticks(rotation=325)
plt.legend()
plt.show()

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章