Matplotlib画图
一、基本函数 1. plt.plot 2. plt.text 3. 设置刻度 4. 设置坐标 5.设置网格
二、绘制折线图 三、绘制散点图 四、绘制柱状图 五、绘制双坐标图
一、基本函数
1. plt.plot
参数 功能 选项 color 改变折线颜色 ‘r’,‘g’,‘b’,‘black’,‘gray’ marker 改变数据点的形状 ‘.’: 小圆点;‘,’: 像素点;‘o’: 实心圆;‘v’: 垂直三角形;‘^’: 正三角形;‘<’: 左三角形;‘>’: 右三角形;‘1’: 向下平行竖线;‘2’: 向上平行竖线;‘3’: 向左平行横线;‘4’: ;右平行横线;‘s’: 正方形;‘p’: 五边形;‘*’: 星号;‘h’: 六边形1;‘H’: 六边形2;‘+’: 加号;‘x’: X号;‘d’: 小菱形;‘D’: 大菱形;’ markerfacecolor 改变数据点的填充色 markeredgecolor 改变数据点的边缘色 markersize 改变数据点的大小 从0到无穷大的浮点数 linestyle 改变折线样式 ‘-’: 实线 ;‘–’: 虚线;‘-.’: 点划线;‘:’: 点线;‘’: 无线条,只显示标记;‘None’: 无线条,不显示标记;’ ': 无线条,不显示标记 linewidth 改变折线宽度 从0到无穷大的浮点数 label 绘制的线条的标签 字符串类型 alpha 线条和标记的透明度 从0到1的浮点数 aa 是否开启抗锯齿 Ture;False
2. plt.text
参数 功能 选项 s 标签的符号 字符串 fontsize 标签字体大小 整数 verticalalignment 垂直对齐方式 center,top,bottom,baseline horizontalalignment 水平对齐方式 center, right,left rotation 标签的旋转角度 以逆时针计算,取整 style 设置字体的风格 weight 设置字体的粗细 string 注释文本内容 color 注释文本内容的字体颜色 bbox 给字体添加框 bbox=dict(facecolor=‘red’, alpha=0.5) 等
3. 设置刻度
plt. xticks( np. linspace( 0 , epochs, 11 ) , size = 16 , weight= 1000 )
plt. xticks( [ ] )
import matplotlib. pyplot as plt
months = [ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'May' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Oct' , 'Nov' , 'Dec' ]
sales = [ 12000 , 15000 , 18000 , 14000 , 16000 , 20000 , 23000 , 21000 , 19000 , 22000 , 25000 , 28000 ]
plt. bar( months, sales)
plt. xticks( [ 2 , 5 , 8 , 11 ] , [ 'Q1' , 'Q2' , 'Q3' , 'Q4' ] )
plt. xlabel( 'Month' )
plt. ylabel( 'Sales' )
plt. title( 'Sales by Quarter' )
plt. show( )
plt. yscale( "log" )
plt. yticks( [ 0.0001 , 0.001 , 0.01 , 0.1 , 1 , 10 ] )
4. 设置坐标
plt. xlabel( "x" , fontdict= { 'weight' : 1000 , 'size' : 16 } )
plt. ylabel( "y" , fontdict= { 'weight' : 'normal' , 'size' : 16 } )
5.设置网格
plt. grid( ls= ":" , color= "gray" , alpha= 0.5 )
二、绘制折线图
import matplotlib. pyplot as plt
import numpy as np
x1 = np. array( [ 1 , 2 , 3 , 4 ] )
y1 = np. array( [ 1 , 1.5 , 2 , 2.5 ] )
x2 = x1
y2 = y1 * 1.5
plt. plot( x1, y1, '-' , marker= 'o' , color= 'b' , linewidth= 1 , markersize= 2 , label= 'A' )
plt. plot( x2, y2, '--' , marker= '^' , color= 'orange' , linewidth= 1 , markersize= 2 , label= 'B' )
for a, b in zip ( x1, y1) :
plt. text( a, b, ( a, b) , ha= 'center' , va= 'bottom' , color= 'b' )
for a, b in zip ( x2, y2) :
plt. text( a, b, ( a, b) , ha= 'center' , va= 'bottom' , color= 'orange' )
plt. xlabel( 'x' )
plt. ylabel( 'y' )
plt. xlim( 1 , 4 )
plt. legend( )
plt. title( 'result' )
plt. show( )
三、绘制散点图
import matplotlib. pyplot as plt
x = [ 1 , 2 , 3 , 4 , 5 ]
y = [ 2 , 4 , 6 , 8 , 10 ]
plt. scatter( x, y)
for i in range ( len ( x) ) :
plt. text( x[ i] , y[ i] , f'( { x[ i] } , { y[ i] } )' , ha= 'center' , va= 'bottom' )
plt. title( 'Scatter Plot with Values' )
plt. xlabel( 'X' )
plt. ylabel( 'Y' )
plt. show( )
四、绘制柱状图
import matplotlib. pyplot as plt
labels = [ 'A' , 'B' , 'C' , 'D' , 'E' ]
values = [ 10 , 20 , 15 , 25 , 30 ]
plt. bar( labels, values)
for i in range ( len ( labels) ) :
plt. text( labels[ i] , values[ i] + 1 , str ( values[ i] ) , ha= 'center' )
plt. title( 'Bar Chart with Values' )
plt. xlabel( 'X' )
plt. ylabel( 'Y' )
plt. show( )
五、绘制双坐标图
import matplotlib. pyplot as plt
x = [ 1 , 2 , 3 , 4 , 5 ]
y1 = [ 10 , 20 , 30 , 40 , 50 ]
y2 = [ 1 , 4 , 9 , 16 , 25 ]
fig, ax1 = plt. subplots( )
line1 = ax1. plot( x, y1, 'g-' , label= 'Y1' )
ax1. set_xlabel( 'X' )
ax1. set_ylabel( 'Y1' , color= 'g' )
ax2 = ax1. twinx( )
scatter = ax2. scatter( x, y2, c= 'r' , marker= 'o' , label= 'Y2' )
ax2. set_ylabel( 'Y2' , color= 'r' )
for i in range ( len ( x) ) :
ax2. text( x[ i] , y2[ i] + 1 , str ( y2[ i] ) , ha= 'center' , va= 'bottom' )
handles1, labels1 = ax1. get_legend_handles_labels( )
handles2, labels2 = ax2. get_legend_handles_labels( )
plt. legend( handles1 + handles2, labels1 + labels2)
plt. title( 'Double Axis Plot with Values' )
plt. show( )