第一部分:matplotlib的安装配置
(1)anaconda安装matplotlib
conda install matplotlib
(2)查看安装是否成功
python -c "import matplotlib; print(matplotlib.__version__)"
(3)卸载matplotlib
conda remove matplotlib
第二部分:使用
导包:
import matplotlib.pyplot as plt
import numpy as np
(1)输出简单的y=x的平方单条图线
①定义x的值
arr_x1=np.linspace(-10,10,1000)
arr_x1
②定义y的值
arr_y1=arr_x1**2
arr_y1
③画图
plt.plot(arr_x1,arr_y1)
plt.show()
(2)在一张图中输出多条线(实线图)
①定义x的值
arr_x=np.linspace(0,10,1000)
arr_x
②定义y1(sin)的值
arr_y1=np.sin(arr_x)
arr_y1
③定义y2(cos)的值
arr_y2=np.cos(arr_x2)
arr_y2
④画图
plt.plot(arr_x,arr_y1)
plt.plot(arr_x,arr_y2)
plt.show()
⑤给曲线绘制颜色
plt.plot(arr_x,arr_y1,color='green')
plt.plot(arr_x,arr_y2,color='red')
plt.show()
⑥设置曲线的格式(实线虚线)
plt.plot(arr_x,arr_y1,color='green',linestyle=':')
plt.plot(arr_x,arr_y2,color='red')
plt.show()
⑦调整x,y的范围(方法1plt.xlim)
plt.plot(arr_x,arr_y1,color='green',linestyle=':')
plt.plot(arr_x,arr_y2,color='red')
plt.xlim(2,8)
plt.ylim(-2,2)
plt.show()
⑧调整x,y的范围(方法2plt.axis)
plt.plot(arr_x,arr_y1,color='green',linestyle=':')
plt.plot(arr_x,arr_y2,color='red')
plt.axis([2,8,-2,2])
plt.show()
前两个是x的坐标,后两个是y的坐标。
⑨给xy轴设置名字xlabel和ylabel
plt.plot(arr_x,arr_y1,color='green',linestyle=':')
plt.plot(arr_x,arr_y2,color='red')
plt.axis([2,8,-2,2])
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()
⑩给两条曲线添加名字label和legend
plt.plot(arr_x,arr_y1,color='green',linestyle=':',label='y=sin(x)')
plt.plot(arr_x,arr_y2,color='red',label='y=cos(x)')
plt.axis([2,8,-2,2])
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend()
plt.show()
⑪给图片添加图像标题title
plt.plot(arr_x,arr_y1,color='green',linestyle=':',label='y=sin(x)')
plt.plot(arr_x,arr_y2,color='red',label='y=cos(x)')
plt.axis([2,8,-2,2])
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.title("figure1")
plt.legend()
plt.show()
(3)散点图scatter
①图1正弦函数和余弦函数
1.定义x的值
arr1=np.linspace(-10,10,100)
arr1
2.定义y1(sinx)的值
arr2=np.sin(arr1)
arr2
3.定义y2(cosx)的值
arr3=np.cos(arr1)
arr3
4.绘制图
plt.scatter(arr1,arr2,color='red')
plt.scatter(arr1,arr3,color='green')
plt.show()
②绘制normal散点图查看分布情况
x=np.random.normal(0,1,10000)
y=np.random.normal(0,1,10000)
plt.scatter(x,y)
plt.show()
设置深浅度alpha:
x=np.random.normal(0,1,10000)
y=np.random.normal(0,1,10000)
plt.scatter(x,y,alpha=0.1)
plt.show()
这个里面的alpha=0.1代表的含义是:1代表全实,0代表虚,也就是透明,通过这样就可以画出来深浅不一的图像(重叠多的地方图像更深)。
(4)折线图(实例,华为手机和小米手机2023年销售量走势(数据自拟))
代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
# 设置中文显示字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 生成2023年1月至12月的销量数据(示例数据,实际销量需要根据实际情况)
np.random.seed(0) # 设置随机种子,以便结果可重复
months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
# 假设华为手机销量在500000到1000000之间,小米手机销量在300000到700000之间
huawei_sales = np.random.randint(500000, 1000000, size=12)
xiaomi_sales = np.random.randint(300000, 700000, size=12)
# 创建DataFrame
df = pd.DataFrame({
'月份': months,
'华为手机销量': huawei_sales,
'小米手机销量': xiaomi_sales
})
# 保存为Excel文件
df.to_excel('华为与小米2023年销量.xlsx', index=False)
# 绘制销售走向图
plt.figure(figsize=(10, 5)) # 设置图表大小
plt.plot(df['月份'], df['华为手机销量'], label='华为手机销量', marker='o') # 绘制华为手机销量
plt.plot(df['月份'], df['小米手机销量'], label='小米手机销量', marker='s') # 绘制小米手机销量
plt.title('2023年华为与小米手机销量走向') # 设置图表标题
plt.xlabel('月份') # 设置x轴标签
plt.ylabel('销量(台)') # 设置y轴标签
plt.legend() # 显示图例
plt.grid(True) # 显示网格
plt.show() # 显示图表
结果:
好啦!持续更新,不断总结,也希望能够帮助到大家!