plot()
1. 折线图
1.1 生成数据
linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
在[start,end]的范围中返回num个等间距的值。
endpoint:True or False. Default : true.
True:end] 闭区间, 否则 end) 开区间
random.rand(d0, d1, ..., dn)
参数d代表纬度 rand(3,2) 生成3行2列数组.
无参数时返回一个数
数据大小为 [0,1) 浮点数
random.randint(low, high=None, size=None, dtype=int)
randowInt_X = np.random.randint(0,20,10) #[0,20) size = 10
randowInt_Y = np.random.randint(5,size = 10) # [0,5)
print(randowInt_X)
print(randowInt_Y)
#[ 4 9 16 19 8 6 8 14 12 2]
#[3 1 2 1 3 3 1 3 4 2]
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
x = np.linspace(0, 2, 100)
# plot([x], y)
plt.plot(x, x, label='linear')
plt.plot(x, x ** 3, label='cubic')
# x轴
plt.xlabel('x label')
# y轴
plt.ylabel('y label')
# 标题
plt.title("Simple Plot")
# 显示标签
plt.legend()
plt.show()
1.2 读取数据
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# 读取excel
df = pd.read_excel("E:/Master/a.xlsx", "Sheet1", engine='openpyxl')
# plot([x], y)
plt.plot(df['People'], df['Needs'], label='Place A')
# x轴
plt.xlabel('People')
# y轴
plt.ylabel('Needs')
# 标题
plt.title("A title")
# 显示标签
plt.legend()
plt.show()
由于pandas版本过高或者excel版本高,会报错.解决:
- 后缀.xlsx 改成 .xls (不靠谱)
- pd.read_excel()参数加上engine=‘openpyxl’
2.plot参数
参数 | 接收值 | 说明 | 默认值 |
---|---|---|---|
x,y | array | x y轴数据 | — |
color | string | 折线的颜色 | None |
marker | string | 折线上数据点处的类型 | None |
linestyle | string | 折线类型 | - |
linewidth | 数值 | 折线粗细 | 1 |
alpha | 0~1 浮点 | 折线透明度 | None |
label | string | 数据标签 | None |
2.1 两种写法
lineX = np.linspace(0,30,30)
randomX = np.random.rand(30) * 80 + 20
randomY = np.random.rand(30) * 200 + 100
# 1.强迫症写法,写上参数.
plt.plot(lineX,randomY,color = 'deeppink',label='red one',linewidth = 2,marker='o')
plt.plot(lineX,randomX,color = 'goldenrod',label='blue one',linewidth = 3,marker='h')
# 2.简写 (颜色+点类型+折线类型): (color,marker,linestyle),
# 下面2个是一样的
plt.plot(lineX,lineX*2,'y8-.')
plt.plot(lineX,lineX*2,color = 'yellow', marker = '8', linestyle='-.')
简写:颜色只能表示部分
标记符 - 颜色 | 标记符 - 颜色 | 标记符 - 颜色 | 标记符 - 颜色 |
---|---|---|---|
y : 黄色 | k : 黑色 | w : 白色 | b : 蓝色 |
g : 绿色 | r:红色 | c : 亮青色 | m : 锰紫色 |
2.2 常用参数
- linestyle
Linestyle | Description |
---|---|
‘-’ or ‘solid’ | solid line 实线 |
‘–’ or ‘dashed’ | dashed line 虚线 |
‘-.’ or ‘dashdot’ | dash-dotted line 点横线 |
‘:’ or ‘dotted’ | dotted line 点虚线 |
‘None’ or ’ ’ or ‘’ | draw nothing 无线 |
maker | description |
---|---|
. | 小圆 |
o | 大圆 |
, | 像素(几乎看不到) |
v | 倒三角 |
^ | 正三角 |
s | 正方形 |
* | 五角星 |
饼图 pie()
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
# 设置分离的距离,0表示不分离
explode = (0, 0.1, 0, 0)
# size[]: 比例, explode[]: 和圆心的距离
# labels[]: 标签, autopct: format. autopct='%1.1f%%\\100%%'->15.0%\100%
# shadow:boolean 阴影(立体效果), startangle:旋转角度
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
# Equal aspect ratio 保证画出的图是正圆形
plt.axis('equal')
plt.show()