plt.plot()参数画图

plt.plot(x,y,format_string,**kwargs)

  • x轴数据,y轴数据,format_string控制曲线的格式字串
  • **kwards:
    color 颜色
    linestyle 线条样式
    marker 标记风格
    markerfacecolor 标记颜色
    markersize 标记大小 等等


  • format_string 由颜色字符,风格字符,和标记字符
颜色字符 #说明 颜色字符 #说明
'c' 青色 'y' 黄色
'g' 绿色 'r' 红色
'w' 白色 'b' 蓝色
'k' 黑色 'm' 洋红色
线条格式 说明
'-' 实线
'-' 短划线
'-.' 点划线
':' 虚线
标记字符 说明
'H'/'h' 横/竖六边形
'+' 十字标
'D' 菱形
'l' 垂直线标记

中文显示乱码

plt.rcParams['font.sans-serif'] = [u'SimHei']     #显示中文
plt.rcParams['axes.unicode_minus'] = False   #显示负号

个人觉得很好看的GRB颜色 ↓↓↓)

RGB颜色 #值
浅紫色 #CCCCFF
奶黄色 #FFFFCC
浅蓝色 #CCFFFF
粉橙色 #FFCCCC
复活节紫 #CC99FF
薄荷绿 #99FFCC





设置plt对象的属性和方法

  • plt.xlabel():设置x轴的标签,plt.ylabel():设置y轴标签。
  • plt.title:设置图的标题。
  • plt.xlim():设置x轴的起始坐标
  • plt.ylim():设置y轴的起始坐标。
  • plt.legend():显示图例,即图中表示每条曲线的标签和样式的矩形区域。

plt.figure()用来画图,自定义画布大小

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
fig1 = plt.figure(num='vae', figsize=(10, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#0000FF')

subplot(numRows,numCols,plotNum)

  • plt.subplot(222)
    将figure设置的画布大小分成几个部分,参数‘221’表示2(row)x2(colu),即将画布分成2x2,两行两列的4块区域,第三位的1表示选择图形输出的区域在第一块,图形输出区域参数必须在“行x列”范围。也可用','进行分割,如plt.subplot(2,2,3)仅当numRows,numCols,plotNum都小于10时可以省略‘,’进行缩写。
  • 导入包

import random
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = [u'SimHei']#显示中文
plt.rcParams['axes.unicode_minus'] = False  #显示负号
  • 绘制散点图

x=[2,1,2,3,4,5]
y=[1,2,2,5,4,3]
plt.scatter(x,y,s=60,c='g',marker='H')

使用plot()函数也能画散点图,只要它的第3个参数是点型(而不是线型)

  • 绘制直方图

mu,sigma=100,20
x=mu+sigma*np.random.randn(20000)
plt.hist(x,bins=100,color='r',normed=True)
  • 直方图横轴表示数据类型,纵轴表示分布情况
  • bins指定直方的个数,normed指定每个条状图的占比例比
  • 绘制饼状图

labels = 'Frogs', 'Hogs' ,'Dogs' ,'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=120,colors='rwmc')

labels设置数据的标签;sizes设置每块所占比例,explode 设置某一块或多块突出来显示,shadow设置阴影。

  • 绘制条状图

y = [15, 30, 25, 10,20,34,33,18]
x=np.arange(8)  #0-7个条形
plt.bar(x, y, color='#99ffcc', width=0.5)   
plt.plot(x, y, 'k', marker='+')
for x1, yy in zip(x, y):    
  plt.text(x1, yy + 1, str(yy), ha='center', va='bottom')

align --对齐方式
tick_label -- 标签
hatch -- 填充内容
width=0.5使条状和间隙各占一半宽,设置参数orientation =‘horizontal’可绘制水平方向条形图

  • plt.barh()
    plt.barh(x,y,align="center",color="c",tick_label = ["q","a","c","e","r","j","b","p"],hatch="/")

  • 绘制极坐标图

ax=plt.subplot(257,projection='polar')
N = 20
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
bars = ax.bar(theta, radii, width = width, bottom = 0.0)
for r, bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.viridis(r / 10.))
    bar.set_alpha(0.5)
plt.subplot(2,5,8,projection='polar')
N = 20
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
plt.polar(theta,radii,color="chartreuse",linewidth=2,marker="*",mfc="b",ms=6)

  • 绘制气泡图, 用二维表示三维数据

a = np.random.randn(20)
b = np.random.randn(20)
plt.scatter(a, b, s=np.power(5*a+20*b,2),c=np.random.rand(20),cmap=matplotlib.cm.RdYlBu,marker="o")

a,b 为 x,y 坐标
s----> 对应气泡大小
c-----> 散点标记颜色
cmap-----> 讲浮点数映射成颜色的颜色映射表

1.numpy.random.rand()
官方文档中给出的用法是:numpy.random.rand(d0,d1,…dn)
以给定的形状创建一个数组,并在数组中加入在[0,1]之间均匀分布的随机样本。
2.numpy.random.randn()
官方文档中给出的用法是:numpy.random.rand(d0,d1,…dn)
以给定的形状创建一个数组,数组元素来符合标准正态分布N(0,1)
3.numpy.random.randint()
官方文档中给出的用法是:numpy.random.randint(low,high=None,size=None,dtype)
生成在半开半闭区间[low,high)上离散均匀分布的整数值;若high=None,则取值区间变为[0,low)

plt.title()函数用于设置图像标题。
参数:
fontsize设置字体大小,默认12,可选参数 [‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’,‘x-large’, ‘xx-large’]
fontweight设置字体粗细,可选参数 [‘light’, ‘normal’, ‘medium’, ‘semibold’, ‘bold’, ‘heavy’, ‘black’]
fontstyle设置字体类型,可选参数[ ‘normal’ | ‘italic’ | ‘oblique’ ],italic斜体,oblique倾斜
verticalalignment设置水平对齐方式 ,可选参数 : ‘center’ , ‘top’ , ‘bottom’ , ‘baseline’
horizontalalignment设置垂直对齐方式,可选参数:left,right,center
rotation(旋转角度)可选参数为:vertical,horizontal 也可以为数字
alpha透明度,参数值0至1之间
backgroundcolor标题背景颜色
bbox给标题增加外框 ,常用参数如下:
boxstyle方框外形
facecolor(简写fc)背景颜色
edgecolor(简写ec)边框线条颜色
edgewidth边框线条大小
详情见

import random
import matplotlib
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = [u'SimHei']#显示中文
plt.rcParams['axes.unicode_minus'] = False  #显示负号

plt.figure(num='Vae',figsize=(16, 7))
plt.xlabel('x')
plt.ylabel('y')
plt.title('Simple Diagram')
x=np.arange(-5,5,0.01)
y,y2=x*x*x,8*x+9     #给y和y2赋值
plt.subplot(2,5,1)
plt.plot(x,y,'c--',label="x^3")
plt.plot(x,y2,'#ccccff',label="8x+9")
plt.legend()    #显示图例
plt.title("多函数图")

num=range(50,100)
nums=random.sample(num,10)
a=np.linspace(0,10,10)
# print(nums)
# print(a)
plt.subplot(2,5,2)
plt.plot(a,nums,'#cc99ff',label="random50-100")
plt.legend()
plt.title("随机数图")

plt.subplot(2,5,3)
plt.title("散点图")
x=[2,1,2,3,4,5,8,7,4]
y=[1,2,2,5,4,3,6,7,2]
plt.scatter(x,y,s=60,c=x,cmap=plt.cm.Blues,marker='H')

plt.subplot(2,5,4)
plt.title("直方图")
mu,sigma=100,20
x=mu+sigma*np.random.randn(20000)
plt.hist(x,bins=100,color='r',normed=True)

plt.subplot(2,5,5)
plt.title("饼状图")
labels = 'Frogs', 'Hogs' ,'Dogs' ,'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=120,colors='mwyc')

plt.subplot(2,5,6)
plt.title("条形图",color='pink',fontweight='heavy',fontsize='large')
y = [15, 30, 25, 10,20,34,33,18]
x=np.arange(8)  #0-7个条形
plt.bar(x, y, color='#99ffcc', width=0.5)
plt.plot(x, y, '#ffcfcc', marker='+')
for x1, yy in zip(x, y):
    plt.text(x1, yy + 1, str(yy), ha='center', va='bottom')

ax=plt.subplot(257,projection='polar')
plt.title("极坐标图",color='pink',fontweight='heavy',fontsize='large')
N = 20
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
bars = ax.bar(theta, radii, width = width, bottom = 0.0)
for r, bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.viridis(r / 10.))
    bar.set_alpha(0.5)

plt.subplot(2,5,8,projection='polar')
plt.title("极坐标图",color='pink',fontweight='heavy',fontsize='large')
N = 20
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
plt.polar(theta,radii,color="chartreuse",linewidth=2,marker="*",mfc="b",ms=6

ax1=plt.subplot(2,5,10, polar=True)
x = np.linspace(0, 1, 100)
y = 2*np.pi*x
plt.title("气泡图",color='pink',fontweight='heavy',fontsize='large')
x1 = 30*np.random.rand(20)
y1 = 2*np.pi*np.random.rand(20)
colors = np.random.rand(20)
size = 15*x1
ax1.scatter(x1, y1, s=size, c=colors, cmap=matplotlib.cm.PuOr, marker="*")

plt.subplot(259)
a = np.random.randn(20)
b = np.random.randn(20)
plt.scatter(a, b, s=np.power(5*a+20*b,2),c=np.random.rand(20),cmap=matplotlib.cm.RdYlBu,marker="o")
# print(a,b)
plt.title("极坐标图",color='pink',fontweight='heavy',fontsize='large')
plt.show()
image.png
import matplotlib.pyplot as plt
#创建一个关于x值的列表,包括数值1到1000
x_values=list(range(1,1001))
# #生成y值的列表解析,for x in x_values遍历所有的x,计算x^2,并将结果存储到y值的列表之中
y_values=[x**2 for x in x_values]
# #将参数c设置成了一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射。这些代#码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色。edgecolor='none'表示删除数据点的轮廓
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolor='none',s=40)
# #绘制标题,x、y轴标签名,并设置字体大小
plt.title("Square Numbers",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)#默认是major表示主刻度,后面分布为次刻度及主次刻度都显示.
plt.tick_params(axis='both',which='major',labelsize=14)
# #x轴坐标轴取值范围是0到1100,y轴坐标轴取值范围是0到1100000
plt.axis([0,1100,0,1100000])
plt.show()
# #保存图像,bbox_inches可以剪出当前图表周围的空白部分
plt.savefig('squares_plot.png',bbox_inches='tight')

你可能感兴趣的:(plt.plot()参数画图)