Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。
https://python-graph-gallery.com/all-charts/
1、折线图
import matplotlib.pyplot as plt
import numpy as np
# 绘制折线图
squares = [1, 4, 9, 16, 25]
#要在前面设置 不然背景色盖住了折线 dpi默认80 ##结果边缘色没变??
plt.figure(dpi=40,figsize=(10,6),facecolor='#FF83FA',edgecolor='#00CD00')
plt.subplot(2,1,1)
# 指定折线粗细
plt.plot(squares, linewidth=5)
# #plt.show();
#修改标签文字和文字大小
plt.title("squre number", fontsize=12)
plt.xlabel("Value", fontsize=14)
plt.ylabel("square of value", fontsize=8)
plt.tick_params(axis='both', labelsize=8)
x=np.linspace(0,3,10)
y=np.sin(x)
plt.subplot(2,1,2)
#plt.plot(x,y,"r-o") ##"o-r"中r红色,o实点,-连接线可以写成 ro- 或 or- 或 -or 顺序不要求
plt.plot(x,y)
plt.show()
# 校正图形
#input_values = [1, 2, 3, 4, 5]
#plt.plot(input_values, squares, linewidth=5)
#plt.show()
linspace()通过指定开始值、终值和元素个数创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值。
arange()类似于内置函数range(),通过指定开始值、终值和步长创建表示等差数列的一维数组,注意得到的结果数组不包含终值。
2、 散点图
import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[5,4,3,2,1]
plt.xlabel('x')
plt.ylabel('y')
plt.title('hhh')
#点的大小颜色
plt.scatter(x,y,s=20,c='r',marker='o')
plt.show()
3、在线绘图
用户可以在网站(https://plot.ly)免费创建一个账号,绘制的图表会保存在自己的在线Plotly账号中。
import plotly as py
import plotly.graph_objs as go
pyplt=py.offline.plot
trace_1=go.Bar(x=["上海贸易","广东明珠","五矿发展"],y=[4.12,5.32,0.60],name="201609")
trace_2=go.Bar(x=["上海贸易","广东明珠","五矿发展"],y=[3.65,6.14,0.58],name="201612")
trace_3=go.Bar(x=["上海贸易","广东明珠","五矿发展"],y=[2.15,1.35,0.19],name="201703")
trace=[trace_1,trace_2,trace_3]
layout=go.Layout(title='对比图')##大写区分
figure=go.Figure(data=trace,layout=layout)
#pyplt(figure,filename='test_hh')
#得到 file:///C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test_hh.html
pyplt(figure,filename='test_hhh.html')
#若test/hhh出错
#得到
file:///C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test_hhh.html
4、 turtle
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
https://www.cnblogs.com/findsoon/articles/9359021.html
## 绘制小蟒蛇
import turtle
def drawSnake(rad, angle, len, neckrad):
for _ in range(len):
turtle.circle(rad, angle)
turtle.circle(-rad, angle)
turtle.circle(rad, angle/2)
turtle.forward(rad/2) # 直线前进
turtle.circle(neckrad, 180)
turtle.forward(rad/4)
if __name__ == "__main__":
turtle.setup(1500, 1400, 0, 0)
turtle.pensize(30) # 画笔尺寸
turtle.pencolor("green")
turtle.seth(-40) # 前进的方向
drawSnake(70, 80, 2, 15)
## 绘制螺旋图
import turtle
turtle.reset()
turtle.pensize(2)
turtle.bgcolor("black")
colors=['red','yellow','orange','green']
for x in range(400):
turtle.forward(2*x)
turtle.color(colors[x%4])
turtle.left(89)
turtle.done() ##注意顶格
5、一平面多个图
# library & dataset
#Seaborn是对matplotlib的extend,是一个数据可视化库,提供更高级的API封装
import seaborn as sns
import matplotlib.pyplot as plt
#使用内置的Seaborn数据集,可以使用load_dataset()函数
df = sns.load_dataset('iris')
# use the function regplot to make a scatterplot
pl(2,1,1)
sns.regplot(x=df["sepal_length"], y=df["sepal_width"])
#plt.plot(x=df["sepal_length"], y=df["sepal_width"]) #失败
#plt.show() 先不用,不然就只出现上面部分,再按一下,就又出现下面部分
# Without regression fit:
plt.subplot(2,1,2)
sns.regplot(x=df["sepal_length"], y=df["sepal_width"], fit_reg=False)
plt.show()