标签:显示中文 details 准备 添加 分享 html figure 数字 矩形
关于matplotlib中一些常见的函数,https://www.cnblogs.com/TensorSense/p/6802280.html这篇文章讲的比较清楚了,https://blog.csdn.net/ouyangjianxiu/article/details/76299171这个也讲的不错
plt.plot(x, y, format_string, **kwargs): x为x轴数据,可为列表或数组;y同理;format_string 为控制曲线的格式字符串, **kwargs 第二组或更多的(x, y, format_string)
format_string: 由 颜色字符、风格字符和标记字符组成。
颜色字符:‘b’蓝色 ;‘#008000’RGB某颜色;‘0.8’灰度值字符串
风格字符:‘-’实线;‘--’破折线; ‘-.’点划线; ‘:’虚线 ; ‘’‘’无线条
标记字符:‘.’点标记 ‘o’ 实心圈 ‘v’倒三角 ‘^’上三角
eg: plt.plot(a, a*1.5, ‘go-’, a, a*2, ‘*’) 第二条无曲线,只有点
pyplot并不默认支持中文显示,需要rcParams修改字体来实现
rcParams的属性:
‘font.family’ 用于显示字体的名字
‘font.style’ 字体风格,正常’normal’ 或斜体’italic’
‘font.size’ 字体大小,整数字号或者’large’ ‘x-small’
eg:
import matplotlib
matplotlib.rcParams[‘font.family’] = ‘STSong’
matplotlib.rcParams[‘font.size’] = 20
设定绘制区域的全部字体变成 华文仿宋,字体大小为20
中文显示2:只希望在某地方绘制中文字符,不改变别的地方的字体
在有中文输出的地方,增加一个属性: fontproperties
eg:
plt.xlabel(‘横轴:时间’, fontproperties = ‘simHei’, fontsize = 20)
pyplot文本显示函数:
plt.xlabel():对x轴增加文本标签
plt.ylabel():同理
plt.title(): 对图形整体增加文本标签
plt.text(): 在任意位置增加文本
plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dict)
: 在图形中增加带箭头的注解。s表示要注解的字符串是什么,xy对应箭头所在的位置,xytext对应文本所在位置,arrowprops定义显示的属性
eg:
plt.xlabel(‘横轴:时间’, fontproperties = ‘SimHei’, fontsize = 15, color = ‘green’)
plt.ylabel(‘纵轴:振幅’, fontproperties = ‘SimHei’, fontsize = 15)
plt.title(r’正弦波实例 $y=cons(2\pi x)$’ , fontproperties = ‘SimHei’, fontsize = 25)
plt.annotate (r’%mu=100$, xy = (2, 1), xytext = (3, 1.5),
arrowprops = dict(facecolor = ‘black’, shrink = 0.1, width = 2)) # width表示箭头宽度
plt.text (2, 1, r’$\mu=100$, fontsize = 15)
plt.grid(True)
plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dict)
plt.plot(x,y , fmt) :绘制坐标图
plt.boxplot(data, notch, position): 绘制箱形图
plt.bar(left, height, width, bottom) : 绘制条形图
plt.barh(width, bottom, left, height) : 绘制横向条形图
plt.polar(theta, r) : 绘制极坐标图
plt.pie(data, explode) : 绘制饼图
plt.scatter(x, y) :绘制散点图
plt.hist(x, bings, normed) : 绘制直方图
# matplolib画正弦函数
import numpy as np import matplotlib.pyplot as plt import matplotlib.font_manager as fm zhfont1 = fm.FontProperties(fname=‘C:\Windows\Fonts\simkai.ttf‘) x = np.linspace(0,10,100) plt.plot(x,np.sin(x)) plt.title(‘正弦函数‘,fontproperties=zhfont1) # 增加参数fontproperties来限定显示的字体, 用此来解决中文显示 plt.xlabel(‘x‘) plt.ylabel(‘sin(x)‘) plt.show()
# matplotlib画一元n次方程 我们来画一个 f(x)=x^{3}+2x^{2}+3x+4 函数的图形
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
zhfont1 = fm.FontProperties(fname=‘C:\Windows\Fonts\simkai.ttf‘)
func = np.poly1d(np.array([1,2,3,4])) # 生成指定的多项式 1,2,3,4是系数 相当于f(x) = 1*x**4 + 2*x**3 + x**3 + 4*x**4
x = np.linspace(-10,10,30)
y = func(x)
plt.plot(x,y)
plt.xlabel(‘x‘)
plt.ylabel(‘y=f(x)‘)
plt.show()
# matplotlib画多个曲线,我们绘制 f(x)=x^{3}+2x^{2}+3x+4 的同时,再绘制其一阶导函数 f^{‘}(x)的图像
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# zhfont1 = fm.FontProperties(fname=‘C:\Windows\Fonts\simkai.ttf‘)
matplotlib.rcParams[‘font.family‘] = ‘SimHei‘ # 用来正常显示中文标签
matplotlib.rcParams[‘axes.unicode_minus‘] = False # 用来正常显示负号
plt.figure(1)
func = np.poly1d(np.array([1,2,3,4]))
func1 = func.deriv(1) # 得到func的一阶导函数
func2 = func.integ() # 得到func的一阶积分函数
x = np.linspace(-10,10,30)
y = func(x)
y1 = func1(x)
y2 = func2(x)
# 在一幅图上画三条曲线
plt.plot(x,y,color=‘r‘,label=‘函数f(x)‘) # 红色实线
plt.plot(x,y1,‘g--‘,label="函数f‘(x)") # 绿色虚线
plt.plot(x,y2,‘b-.‘,label="函数f^2(x)") # 蓝色点划线
plt.legend() # 设置图例和其中的文本的显示
plt.show() # 显示图片
# matplotlib画多个曲线,我们绘制 f(x)=x^{3}+2x^{2}+3x+4 的同时,再绘制其一阶导函数 f^{‘}(x)的图像
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# zhfont1 = fm.FontProperties(fname=‘C:\Windows\Fonts\simkai.ttf‘)
matplotlib.rcParams[‘font.family‘] = ‘SimHei‘ # 用来正常显示中文标签
matplotlib.rcParams[‘axes.unicode_minus‘] = False # 用来正常显示负号
plt.figure(1)
func = np.poly1d(np.array([1,2,3,4]))
func1 = func.deriv(1) # 得到func的一阶导函数
func2 = func.integ() # 得到func的一阶积分函数
x = np.linspace(-10,10,30)
y = func(x)
y1 = func1(x)
y2 = func2(x)
# 在一幅图上画三条曲线
# plt.plot(x,y,color=‘r‘,label=‘函数f(x)‘) # 红色实线
# plt.plot(x,y1,‘g--‘,label="函数f‘(x)") # 绿色虚线
# plt.plot(x,y2,‘b-.‘,label="函数f^2(x)") # 蓝色点划线
# plt.legend() # 设置图例和其中的文本的显示
# plt.show() # 显示图片
# 用子图分别画图
plt.subplot(311)
plt.plot(x,y,‘r‘)
plt.title(‘f(x)‘)
plt.subplot(312)
plt.plot(x,y1,‘g‘)
plt.title(‘f(x)的一阶导函数‘)
plt.subplot(313)
plt.plot(x,y2,‘b‘)
plt.title(‘f(x)的一阶积分函数‘)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
plt.scatter(x, np.sin(x), marker=‘o‘) # marker 点的形状
plt.grid()
plt.show()
使用plt.sactter相比plt.plot在创建散点图时的优势是具有更高的灵活性,他可以单独控制每一个散点的不同属性(颜色、大小等),这样就可以通过(坐标位置、颜色、大小)这些多维信息,来表征更多的数据特征,
并进行更精细的控制。
我们来绘制这样一组散点图,每个点的位置坐标(x,y)是服从标准正态分布的随机值,点的颜色灰度值是位于(0,1)空间中的随机样本,点的大小是随机值得1000倍,单位是像素。
这样通过位置、大小、颜色等多维信息,就能更丰富的表现出散点数据背后所蕴含的多重信息了。
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.RandomState(0)
x = rng.randn(100)
y = rng.randn(100)
colors = rng.rand(100)
sizes = 1000*rng.rand(100)
plt.scatter(x,y,c=colors,s=sizes,alpha=0.3) # c 点的颜色 s 点的大小 alpha 点的透明度
plt.colorbar()
plt.grid(True)
plt.show()
from matplotlib import pyplot as plt import numpy as np #这节课,我们学习如何通过matplotlib绘制简单条形图 #第一步,取出一张白纸 fig=plt.figure(1) #第二步,确定绘图范围,由于只需要画一张图,所以我们将整张白纸作为绘图的范围 ax1=plt.subplot(111) #第三步,整理我们准备绘制的数据 data=np.array([15,20,18,25]) #第四步,准备绘制条形图,思考绘制条形图需要确定那些要素 #1、绘制的条形宽度 #2、绘制的条形位置(中心) #3、条形图的高度(数据值) width=0.5 x_bar=np.arange(4) #第五步,绘制条形图的主体,条形图实质上就是一系列的矩形元素,我们通过plt.bar函数来绘制条形图 rect=ax1.bar(left=x_bar,height=data,width=width,color="lightblue") #第六步,向各条形上添加数据标签 for rec in rect: x=rec.get_x() height=rec.get_height() ax1.text(x+0.1,1.02*height,str(height)) #第七步,绘制x,y坐标轴刻度及标签,标题 ax1.set_xticks(x_bar) ax1.set_xticklabels(("first","second","third","fourth")) ax1.set_ylabel("sales") ax1.set_title("The Sales in 2016") ax1.grid(True) ax1.set_ylim(0,28) plt.show()
bings将直方图的取值范围进行均等划分bings个区间;
normed =1 表示将出现频次进行了归一化。 normed=0,则为频次;
alpha表示直方图的透明度[0, 1] ;
histtype = ‘stepfilled’ 表示去除条柱的黑色边框
标签:显示中文 details 准备 添加 分享 html figure 数字 矩形
原文地址:https://www.cnblogs.com/woaixuexi9999/p/9238098.html