python有趣画图代码_python画图代码集合
matplotlib介绍
基本图形展现
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,3,2,4],[1,3,2,7],'ro')
plt.ylabel('some numbers')
plt.axis([0, 6, 0, 20])
plt.show()
上⾯例⼦⾥的plot⾥的list规定了x和y,如果缺省⼀个则将视为y值,后⾯的‘ro’表⽰红⾊的圈圈,可以做修改;
axis()命令给定了坐标范围,格式是[xmin, xmax, ymin, ymax];
实际上,matplotlib不仅可以⽤于画向量,还可以⽤于画多维数据数组。
# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)
# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
格式设置
线形设置
有很多线的性质可供你设置:线宽,虚线格式,反锯齿补偿,等。进⼀步深⼊了解参数可以参见matplotlib.lines.Line2D
·我们可以通过'linewidth'来设置线宽,通过设定set_antialiased来确定是否消除锯齿
line = plt.plot([1,2,3,4], [1,4,9,16], '-', linewidth=2.0)
line.set_antialiased(False) # 关闭反锯齿
⾯我们都只画了⼀条线。这⾥,我们采⽤lines = plot(x1,y1,x2,y2)来画两条线。可以使⽤setp()命令,可以像MATLAB⼀样设置⼏条线的性质。 setp可以使⽤python 关键词,也可⽤MATLAB格式的字符串。(plt.setp(lines))
lines = plt.plot([1,2,3,4], [1,4,9,16], [1,2,3,4], [16,5,6,2])
# use keyword args
plt.setp(lines, color='r', linewidth=2.0)
# or MATLAB style string value pairs
plt.setp(lines, 'color', 'r', 'linewidth', 2.0)
我们在作图中经常⽤到的性质都在以下列表中给出了:
线型包括
'--' 虚线
'-.' 点划线
':' 点
'None', '', 不画
线标记包括
标记 描述
'o' 圆圈
'D' 钻⽯
'h' 六边形1
matplotlib中subplot
'H' 六边形2
'x' X
'', 'None' 不画
'8' ⼋边形
'p' 五⾓星
',' 像素点
'+' 加号
'.' 点
's' 正⽅形
'*' 星型
'd' 窄钻⽯
'v' 下三⾓
'
'>' 右三⾓
'^' 上三⾓
颜⾊ 所有的颜⾊设置可以通过命令lors()来查询标记 颜⾊
'b' 蓝⾊
'g' 绿⾊
'r' 红⾊
'c' 蓝绿⾊
'm' 品红
'y' 黄⾊
如果上⾯的颜⾊还是不够⽤,可以采⽤RGB3元组来定义,范围是0~1
⽐如:color = (0.3, 0.3, 0.4)
color可以被⽤在⼀系列和函数中,这⾥我们再title中改变color
修改坐标范围
默认情况下,坐标轴的最⼩值和最⼤值与输⼊数据的最⼩、最⼤值⼀致。也就是说,默认情况下整个图形都能显⽰在所画图⽚上,我们可以通过xlim(xmin, xmax)和ylim(ymin, ymax)来调整x,y坐标范围,见下:
xlim(-2.5, 2.5)
#设置y轴范围
ylim(-1, 1)
plt.plot(x, y1)
创建⼦图
你可以通过plt.figure创建⼀张新的图,plt.subplot来创建⼦图。subplot()指令包含numrows(⾏数), numcols(列数), fignum(图像编号),其中图像编号的范围是从1到⾏数 * 列数。在⾏数 * 列数<10时,数字间的逗号可以省略。
def f(t):
p(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()
你可以多次使⽤figure命令来产⽣多个图,其中,图⽚号按顺序增加。这⾥,要注意⼀个概念当前图和当前坐标。所有绘图操作仅对当前图和当前坐标有效。通常,你并不需要考虑这些事,下⾯的这个例⼦为⼤家演⽰这⼀细节。
plt.figure(1) # 第⼀张图
plt.subplot(211) # 第⼀张图中的第⼀张⼦图
plt.plot([1,2,3])
plt.subplot(212) # 第⼀张图中的第⼆张⼦图
plt.plot([4,5,6])
plt.figure(2) # 第⼆张图
plt.plot([4,5,6]) # 默认创建⼦图subplot(111)
plt.figure(1) # 切换到figure 1 ; ⼦图subplot(212)仍旧是当前图
text()可以在图中的任意位置添加⽂字,并⽀持LaTex语法
xlable(), ylable()⽤于添加x轴和y轴标签
title()⽤于添加图的题⽬
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
# 数据的直⽅图
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
plt.xlabel('Smarts')
plt.ylabel('Probability')
#添加标题
plt.title('Histogram of IQ')
#添加⽂字
<(60, .025, r'$\mu=100,\ \sigma=15$')
plt.axis([40, 160, 0, 0.03])
plt.show()
t0 = (0.35,0.5,'my text')
plt.setp(t0, color='b',fontsize=24)
t = plt.xlabel('my data', fontsize=14, color='red')
注释⽂本
在数据可视化的过程中,图⽚中的⽂字经常被⽤来注释图中的⼀些特征。使⽤annotate()⽅法可以很⽅便地添加此类注释。在使⽤annotate时,要考虑两个点的坐标:被注释的地⽅xy(x, y)和插⼊⽂本的地⽅xytext(x, y)
ax = plt.subplot(111)
t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = plt.plot(t, s, lw=2)
plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(facecolor='black', shrink=0.05),
)
plt.ylim(-2,2)
plt.show()
由彩⾊的图案构成,位于图例说明的左侧
图例说明
图例标签的说明⽂字
使⽤legend()函数可以⾃动添加图例
line_up, = plt.plot([1,2,3], label='Line 2')
line_down, = plt.plot([3,2,1], label='Line 1')
plt.legend(handles=[line_up, line_down])
有时候多个图例图例分别添加在不同位置使图有更强的可读性。可以通过多次调⽤legned()函数来实现。添加图例的位置可以⽤关键词loc 来指定。
line1, = plt.plot([1,2,3], label="Line 1", linestyle='--')
line2, = plt.plot([3,2,1], label="Line 2", linewidth=4)
# Create a legend for the first line.
first_legend = plt.legend(handles=[line1], loc=1)
# Add the legend manually to the current Axes.
ax = a().add_artist(first_legend)
# Create another legend for the second line.
plt.legend(handles=[line2], loc=4)
plt.show()
seaborn介绍
格式设置 Style management
seaborn有五种模版darkgrid, whitegrid, dark, white, and ticks可以选择
sns.set_style("whitegrid")
data = al(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data);
可以⽤下⾯的命令去掉axes spines
sns.despine()
you can pass a dictionary of parameters to the rc argument of axes_style() and set_style()
sns.set_style("darkgrid", {"axes.facecolor": ".9"})
sinplot()
颜⾊设置
这⾥喜欢⽤的颜⾊:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。