matplotlib是绘图基本库。
1.基本步骤
2.折线图(中文坐标,时序格式化,坐标刻度自定义,多条曲线,网格线,添加标注,曲线属性修改)
1,最基本的折线图如下图所示:

代码:
import matplotlib.pyplot as plt
def draw_line():
plt.figure()
x = [0, 1, 2, 3]
y = [0, 1, 1, 3]
plt.plot(x, y)
plt.show()
2.时间序列的多条折线图

直接上代码
"""
基本步骤:
1.导入包 import matplotlib.pyplot as plt
2.x,y 坐标设置 x=[0,1,2,3]
y=[0,1,1,3]
3.画图 plt.plot(x,y)
4.显示 plt.show()
1.初始化
2.画框 横、纵坐标,标题、网格
3.数据 list array
4.线的属性、颜色、形状
5.多条线
#取随机数
def m_random():
整数 np.random.randint(2, size=10) [low, high)
np.random.randint(5, size=(2, 4))
浮点 (b - a) * random_sample() + a
np.random.random_sample()
5 * np.random.random_sample((3, 2)) - 5
#两个np数组或者叫向量相加
def npAdd():
"""
"""
def draw_lines():
"""
import matplotlib.pyplot as plt
import random
import numpy as np
import pandas as pd
from matplotlib.font_manager import FontProperties
def draw_line():
plt.figure()
x = [0, 1, 2, 3]
y = [0, 1, 1, 3]
plt.plot(x, y)
plt.show()
# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#线坐标
def line_xy():
line_list = []
return line_list
#取随机数
def m_random():
m_nums=10 #个数
#1.随机整数 #取[10,1000)之间 10个随机整数
m_int = np.random.randint(10,1000, size=10)
"""
[75 13 40 72 59 52 25 56 93 41]
"""
# 2.数组 #取[10,1000)之间 10个随机整数
arr=np.random.randint(5, size=(2,4))
"""
array([[4, 0, 2, 1],
[3, 2, 2, 0]])
"""
# 3.随机浮点数(b - a) * random_sample() + a
b = 1000
a = 10
m_float = (b - a) * np.random.sample(m_nums) + a
"""
[347.50801037 864.46588974 30.95790558 219.57325679 633.14244158
861.40590658 53.43840226 721.61456702 659.02330125 595.60152231]
"""
m_rc=m_float
return m_rc
#两个np数组或者叫向量相加
def npAdd():
total_times = 3
arr1= np.random.randint(1, 7, size=total_times)
arr2 = np.random.randint(1, 7, size=total_times)
result_arr = arr1 + arr2
print(arr1)
print(arr2)
print(result_arr)
"""
[3 5 5]
[6 3 6]
[ 9 8 11]
"""
def setLabel():
y = [1, 1, 1, 1]
plt.plot(y, 'ro')
plt.grid(True)#显示网格
plt.show()
#模拟数据 时间序列、值、id
#取值范围 low high
def m_timedata(low,high):
totalNums = 100
df = pd.DataFrame(np.random.uniform(low, high, (totalNums, 1)),
index=pd.date_range(start="2019-12-19", freq='D', periods=totalNums))
df['id'] = np.arange(totalNums) # df 加一列
df.columns=["value","id"]#设置列名
y = df["value"].values #取这列的值 值
x = df["value"].index #取这列的索引 时间
return x,y
def draw_lines():
x1,y1=m_timedata(10,50)
x2, y2 = m_timedata(20, 60)
x3, y3 = m_timedata(10, 60)
line1=plt.plot(x1, y1, 'r') #rgb=红绿蓝,默认为蓝
line2=plt.plot(x2, y2, 'g--') # 一起修改为绿色虚线
line3=plt.plot(x3, y3, 'b')
plt.setp(line1, color='r',linewidth='1.0') #设置曲线的宽度
plt.setp(line2, linewidth='3.0')
plt.setp(line3, linewidth='6.0')
plt.grid(True) #显示网格
# 修改坐标轴
y_label=range(0,100,10)#(0,100)指定刻度范围 分10 份
plt.yticks(y_label) #指定刻度范围
plt.title("我的折线图")
plt.xlabel("time",color="b", fontname='SimHei',fontsize=15) #fontname 字体名称
plt.ylabel("value",color="b", fontproperties='SimHei',fontsize=20)
plt.text(2.5, 100, "TEXT1")
plt.show()
def main():
draw_lines()
if __name__=="__main__":
main()
本文详细介绍使用Matplotlib绘制折线图的方法,包括中文坐标、时序格式化、坐标刻度自定义、多条曲线、网格线、添加标注及曲线属性修改等高级技巧。
1万+

被折叠的 条评论
为什么被折叠?



