在引入 jupyter notebook 的 jupyterthemes 后,进行多项式绘图,发现显示的图形有问题,解决如下:

#这一句是IPython的魔法函数,可以在IPython编译器里直接使用,作用是内嵌画图,省略掉plt.show()这一步,直接显示图像。 
#如果不加这一句的话,我们在画图结束之后需要加上plt.show()才可以显示图像
%matplotlib inline

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#以下设置语句可以用于解决画图过程中出现的乱码问题!请参考使用(当你还是使用Python2的时候)。
#import sys
#from matplotlib.font_manager import FontProperties
#myfont=FontProperties(fname=r'/Users/Ruan/anaconda/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf/msyh.ttc')


#myfont赋值为特定字体(如本例中的微软雅黑字体)存储在系统中的绝对路径
#在需要显示汉字的地方,指定自定义字体即可,如在x轴标签中要显示汉字:
#    plt.xlabel(u'汉字',fontproperties=myfont)
#

#plt.rcParams['axes.unicode_minus']=False    #解决负号'-'显示为方块的问题

#将标准输入、输出、错误重定向
#stdout=sys.stdout
#stdin=sys.stdin
#stderr=sys.stderr

#import imp
#imp.reload(sys)
#使用上述设置虽然可以解决中文乱码和编码问题,但还是建议尽量采用英文。


#多项式的写法
a=np.array([2,-3.5,1.6,-2,9])
#polynomial 多项式
p=np.poly1d(a)
#显示几次方,不大好看
print (p)

#均匀分布
x=np.linspace(0,9,10)
x

#带入多项式算出结果
y=p(x)
y

发现黑色的坐标轴在黑色的背景下几乎看不清.

解决方法1:改坐标轴颜色

plt.plot(x,y)
plt.xlabel('X')

#改坐标轴颜色
#获取坐标轴对象
ax = plt.gca()
#设置颜色
ax.tick_params(axis='both',colors = 'white')
#ax.tick_params(axis='both',colors = 'red')

plt.ylabel('Y')
plt.show()

解决方法2:使用jupyterthemes的jtplot将plot风格调整为与主题保持一致

#切换主题后,在jupyter进行plot渲染时,主题配色与默认的matplotlib默认配色相互影响,解决办法是使用jupyterthemes的jtplot将plot风格调整为与主题保持一致
# import jtplot module in notebook
from jupyterthemes import jtplot

# choose which theme to inherit plotting style from
# onedork | grade3 | oceans16 | chesterish | monokai | solarizedl | solarizedd
jtplot.style(theme='onedork')

# set "context" (paper, notebook, talk, poster)
# scale font-size of ticklabels, legend, etc.
# remove spines from x and y axes and make grid dashed
jtplot.style(context='talk', fscale=1.4, spines=False, gridlines='--')

# turn on X- and Y-axis tick marks (default=False)
# turn off the axis grid lines (default=True)
# and set the default figure size
jtplot.style(ticks=True, grid=False, figsize=(6, 4.5))

# reset default matplotlib rcParams
jtplot.reset()		

然后绘图,画2条曲线:

p1=p.deriv(m=1)	#deriv方法的参数m为1得到其一阶导函数
y1=p1(x)
plt.plot(x,y,x,y1)

plt.show()

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐