目录
前言
一、matplotlib.pyplot的基本应用
二、使用步骤
1.引入库
2.如何应用(csdn手打可能有错)
总结
前言
总结一下这几天学习的数据可视化
一、matplotlib.pyplot的基本应用
python可以完成数据密集型工作,而且运算速度非常快。数据科学家们编写了一系列令人印象深刻的可视化和分析工具。这里我们主要用的是matplotlib工具,matplotllib是一个数学绘图库。我们可以用它来绘制直线图,散点图,随机漫步等等。
二、使用步骤
1.引入库
import matplotlib.pyplot as plt
2.如何应用(csdn手打可能有错)
1.
x_values=[1,2,3,4]
y_values=[1,4,9,16]
plt.plot(x_values,y_vallues,linewidth=10)#绘制折线,参数一是x轴的值,参数二是y轴的值
#设置折线图的格式
plt.title('平方折线图',fontsize=10)
plt.xlabel('数值',fontsize=10)
plt.ylabel('平方值',fontsize=10)
#设置刻度标记的大小
plt.tick_params(axis='both',labelsize=14)
plt.show()#将折线图显示
这里的代码主要是绘制折线图,当然绘制散点图与上述代码类似
注意点:x_values,y_values可以是list,也可以是int,对应个数应当相等
import matplotlib.pyplot as plt
x_value=[1,2,3,4]
y_value=[1,4,9,16]
plt.scatter(x_value,y_value,s=100)
#修饰散点图,折线图 图表的四要素 (图表主题,x轴的主题,y轴的主题,还有刻度的大小)
plt.title("Square number",fontsize=20)
plt.xlabel("value",fontsize=14)
plt.ylabel("value_Square",fontsize=14)
plt.tick_params(axis='both',which='major',labelsize=10)
plt.show()
2.matplotlib.pyplot的自动化计算
将上述散点图代码的以下变量改为:
x_values=list(range(1,1001))产生1——1000的数并且存入列表
y_values=[x**2 for x in x_values]
3.颜色设置方面
(1)要在绘制图表的语句中添加颜色设置
例如:
plt.scatter(x_values,y_values,s=100,edgecolor='none',c='red')
颜色设置另一种方式:c=(0,0,0.8)
(2)颜色映射(colormap):一系列的颜色,起始颜色到结束颜色。
plt.scatter(x_values,y_values,s=100,edgecolor='none',c=y_values,cmap=plt.cm.Blues)
(3)自动保存文件语句
plt.show()替换为
plt.savefig('square_plot.png',bbox_inches='tight')第一个参数是文件名,第二个参数是将图表多余的空白区域裁减掉。
4.模拟多次散步模型
一个人要怎么走,是直线,还是转圈,还是随机漫步,都有一个共性,那就是要有起始位置,和走的步数。但差异在,一步距离和方向,所以我们要先创建一个类,并设置具有初始值的共性。
from random import choice
class RandomWalk():
def __init__(self,numpoints=5000):
self.numpoints=numpoints #规定漫步次数,默认值为5000
self.x_values=[0] #x轴
self.y_values=[0] #y轴
def get_step(self):
direction=choice([1,-1]) #随机选择方向
distance=choice([0,1,2,3,4]) #漫步长度
step=direction*distance
return step
def fill_walk(self):
while len(self.x_values) < self.numpoints:
x_step=self.get_step()
y_step=self.get_step()
if x_step==0 and y_step==0: #防止原地不动
continue
x_next=self.x_values[-1]+x_step #点在x轴上的位移
y_next=self.y_values[-1]+y_step #点在y轴上的位移
self.x_values.append(x_next) #下一个点的x轴值
self.y_values.append(y_next) #下一个点的y轴值
之后我们可以向绘制散点图一样去绘制随机漫步图像了
import matplotlib.pyplot as plt
from random_walk import Random
while True:
random_number=5000
ran=Random(random_number)
ran.fill_random()
#设置窗口大小,分辨率
plt.figure(dpi=128,figsize=(16, 12))
#根据前面的plt.scatter正常进行绘制,并对其进行渐变设置(颜色樱色)
plt.scatter(ran.x,ran.y,s=15,edgecolors='none',c=ran.y,cmap=plt.cm.Blues)
#对点进行重新绘制
plt.scatter(0,0,c='Red',edgecolors='none',s=100)
plt.scatter(ran.x[-1],ran.y[-1],s=100,c='Green')
#设置坐标轴不可见
frame = plt.gca()
# 设置 y 轴不可见
frame.axes.get_yaxis().set_visible(False)
# 设置 x 轴不可见
frame.axes.get_xaxis().set_visible(False)
plt.show()
msg=input('是否继续绘制y/n')
if msg== 'n':
break
注意:我们在绘制的时候可以添加对图表进行更多的属性设置。并且加入循环,进行判断,从而达到进行多次绘制的目的。
三.pygal模拟掷骰子
首先创建一个骰子的类
这里我们用到了random中的randint,产生范围内的随机数,我们用定义了一个创造随机数的函数
from random import randint
class Die():
def __init__(self,screen_number=6):
#骰子的面数
self.screen_number=screen_number
def create_random(self):
random=randint(1,self.screen_number+1)+randint(1,self.screen_number+1)
print(random)
return random
from die import Die
import pygal
die=Die()
randoms=[]
allrandoms=10000
for random_number in range(1,allrandoms):
random=die.create_random()
randoms.append(random)
print(randoms)
citisfys=[]
for rand in range(2,13):
citisfy=randoms.count(rand)
citisfys.append(citisfy)
print(citisfys)
#用模块pygal中的Bar类创建了一个实例hist
hist=pygal.Bar()
#设置图表的主题,x标题,y标题。还有x的标签值
hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12']
hist.title='骰子随机数统计'
hist.x_title='骰子数'
hist.y_title='骰子数统计数'
#给与图表值
hist.add('D6',citisfys)
hist.render_to_file('die_number.svg')
总结
睡了,明天接着总结。