python数据可视化——plot函数、基本图像属性设置、中文显示问题解决方法、子图设置

目录

1 plot()函数

2 基本图像属性设置

2.1 坐标轴标题

2.2 坐标轴范围

2.3 坐标标签

2.4 添加记号 

2.5 添加参考线

2.6 图标标题

2.7 设置figure大小、像素

2.8 保存图片

3 代码整合示例 

4 中文显示问题解决方法 

5 子图设置 


 

plot()函数

plot(*args,**kwargs)
plot()函数的常用参数
参数名称 含义
args

前2个位置参数用来设置折线图上若干个端点坐标;

第一个参数位置:x坐标;

第二个参数位置:y坐标;

第三个参数位置:颜色、线型、标记符号形状:

  • 颜色:‘r’(红色)、'g' (绿色)、'b'(蓝色)、'c'(青色)、'm'(品红色)、'y'(黄色)、'k'(黑色)、'w'(白色)
  • 线型:'-'(实心线)、'--'(短划线)、'-.'(点划线)、':'(点线)
  • 标记符:'.'(圆点)、'o'(圆圈)、'v'(向下的三角形)、'^'(向上的三角形)、'<'(向左的三角形)、 '>'(向右的三角形)、'*'(五角星)、'+'(加号)、'_'(下划线)、'x'(x符号)、'D'(菱形)
kwargs
  • alpha:指定透明度,介于0到1之间,默认为1,表示完全不透明;
  • antialiased或aa:TRUE表示图形启用抗锯齿或反走样,False表示不启用,默认为True;
  • color 或 c:线条颜色;
  • label:线条标签;
  • linestyle 或 ls:线型;
  • linewidth 或 lw:线条宽度,单位为像素;
  • marker:标记符形状;
  • markeredgecolor 或 mec :标记符边线颜色;
  • markeredgewidth 或 mew:标记符边线宽度;
  • markerfacecolor 或 mfc:标记符背景色;
  • markersize 或 ms:标记符大小;
  • visible:线条与标记符是否可见,默认为True

——示例

import numpy as np
import matplotlib.pyplot as plt

#模拟数据
x = np.arange(0, 2 * np.pi, 0.1)
y = np.sin(x)

#画图并显示
plt.plot(x,y)
plt.show()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pfX2FyaWVz,size_16,color_FFFFFF,t_70

2 基本图像属性设置

2.1 坐标轴标题

#front(标签属性):字体、大小等
font = {'family' : 'Times New Roman','weight' : 'normal','size': 12}
plt.xlabel("x",font)         
plt.ylabel(r"y",font)

2.2 坐标轴范围

plt.xlim(0,100)
plt.ylim(0,100)

2.3 坐标标签

plt.text(np.pi/2, max(y),'Max',fontsize=14)  #添加文字

2.4 添加记号 

plt.scatter([np.pi/2], [max(y)], marker='*', color='red', s=120) #画个记号

2.5 添加参考线

# 绘制水平线 
plt.hlines(1, xmin = 0, xmax = 0.542, ls = '--', lw = 2,\
           color = 'royalblue', label = 'hlines')
# 绘制竖直线
plt.vlines(0.0296, ymin = 0, ymax = 2, ls = '--', lw = 2,\
           color = 'orange', label = 'vlines')

2.6 图标标题

plt.title('our first plot')  #图标标题

2.7 设置figure大小、像素

plt.figure(figsize=(6, 4), dpi=100)

2.8 保存图片

plt.savefig("折线图01.png", dpi=200)

3 代码整合示例 

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 2 * np.pi, 0.1)
y = np.sin(x)
plt.plot(x,y,color='green',linewidth=1,linestyle='--',marker='o',markersize=2)

plt.xlabel('X label')       #x轴标题
plt.ylabel('Y label')       #y轴标题
plt.xlim(0,2*np.pi)         #设置x轴的范围
plt.ylim(-1,1)              #设置y轴的范围
plt.text(np.pi/2, max(y),'Max',fontsize=14)  #添加文字
plt.scatter([np.pi/2], [max(y)], marker='*', color='red', s=120) #画个记号
# 绘制水平线 
plt.hlines(0, xmin = 0, xmax = 6, ls = '--', lw = 2,\
           color = 'royalblue', label = 'hlines')
# 绘制竖直线
plt.vlines(3, ymin = -1, ymax = 1, ls = '--', lw = 2,\
           color = 'orange', label = 'vlines')
plt.title('our first plot')  #图标标题
plt.show()

4 中文显示问题解决方法 

#图上显示中文的问题
import matplotlib.pyplot as plt
import matplotlib as mpl
 
# 生成x轴数据  列表推导式
x_data = [i for i in range(0, 55, 5)]
 
# 构造y轴数据
y_data1 = [0.5, 0.62, 0.72, 0.78, 0.85, 0.7, 0.64, 0.44, 0.29, 0.15, 0.09]
y_data2 = [0.5, 0.67, 0.71, 0.76, 0.79, 0.66, 0.58, 0.44, 0.38, 0.26, 0.18]
y_data3 = [0.5, 0.59, 0.72, 0.74, 0.76, 0.68, 0.58, 0.48, 0.4, 0.36, 0.3]
 
# matplotlib其实是不支持显示中文的 显示中文需要一行代码设置字体
mpl.rcParams['font.family'] = 'STKAITI' #'STKAITI'——字体
plt.rcParams['axes.unicode_minus'] = False   # 解决坐标轴负数的负号显示问题

# 设置图形显示风格
#plt.style.use('ggplot')
 
# 设置figure大小、像素
plt.figure(figsize=(6, 4), dpi=100)
 
# 绘制三条折线  点的形状 颜色  标签:用于图例显示
plt.plot(x_data, y_data1, marker='^', color="k", label="设备1")
plt.plot(x_data, y_data2, marker="o", color="k", label="设备2")
plt.plot(x_data, y_data3, marker="s", color="k", label="设备3")
 
# x y 轴标签   字体大小
plt.xlabel("时间周期/min", fontsize=13)
plt.ylabel("直接信任度值", fontsize=13)
 
# 显示图例
plt.legend()
 
# 保存图片  展示show
plt.savefig("折线图01.png", dpi=200)
plt.show()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pfX2FyaWVz,size_16,color_FFFFFF,t_70

5 子图设置 

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 2 * np.pi, 0.1)
y_sin = np.sin(x)
y_cos = np.cos(x)

# 创建画布,切分绘图区域
figure = plt.figure(figsize=(8,4),dpi=100)

#各子图位置
ax1 = plt.subplot(1, 2, 1)
ax2 = plt.subplot(1, 2, 2)

# 绘制两条曲线
l1=ax1.plot(x, y_sin,'r--') # 绘制第一个子图
l2=ax2.plot(x, y_cos,'b-') # 绘制第二个子图

#设置显示标题
ax1.set_title('sin curve')
ax2.set_title('cos curve')

#调整子图之间距离
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.6, hspace=0.5)
plt.show()

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pfX2FyaWVz,size_16,color_FFFFFF,t_70

参考来源:https://www.jb51.net/article/211847.htm

posted @ 2021-05-31 20:16  小平凡的记录  阅读(131)  评论(0编辑  收藏  举报  来源