python 饼图、直方图、散点图和盒图基本绘制

python 饼图、直方图、散点图和盒图基本绘制

饼图

import matplotlib.pyplot as plt

labels='Frogs','Hogs','Dogs','Logs'#对应扇块的标签
sizes=[15,30,45,10]#对应扇块的尺寸
explode=(0,0.1,0,0)#对应扇块突出的比例

plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)#autopct为显示百分比的格式,shadow为是否带阴影,startangle为起始角度

plt.axis('equal')#让饼图变圆
plt.show()

pyplot绘制的饼图

直方图

使用pygal

from random import randint

class Die():

    def __init__(self,num_sides=6):
        self.num_sides=num_sides

    def roll(self):
        return randint(1,self.num_sides)

import pygal
from die import Die
die=Die()

results=[]
for roll_num in range(100):
    result=die.roll()
    results.append(result)

frequencies=[]
for value in range(1,die.num_sides+1):
    frequency=results.count(value)
    frequencies.append(frequency)

print(frequencies)

hist=pygal.Bar()

hist.title="Results of rooling one D6 100 times."
hist.x_labels=[str(x) for x in range(1,7)]#x轴标签
hist._x_title="Result"
hist._y_title="Frequency of Result"

hist.add('D6',frequencies)#增加要显示的数据
hist.render_to_file('die_visual.svg')

pygal绘制的直方图效果

使用pyplot

import numpy as np
import matplotlib.pyplot as plt
#下面随机生成数据
np.random.seed(0)
mu,sigma=100,20
a=np.random.normal(mu,sigma,size=100)

plt.hist(a,20,normed=1,histtype='stepfilled',facecolor='b',alpha=0.75)#20表示生成的图形有20个直方(数据取值区间被20等分)
#normed=1表示将个数(y轴值)归一化
plt.title('Histogram')
plt.show()

pyplot生成的直方图

散点图

例1

#散点图
import matplotlib.pyplot as plt

#plt.scatter(2,4,s=200) #绘制单个点
x_values=list(range(1,11))
y_values=[x**2 for x in x_values]
plt.scatter(x_values,y_values,s=100)
plt.title("Square Numbers",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)
plt.tick_params(axis='both',which='major',labelsize=14)
plt.show()

在这里插入图片描述

例2

import matplotlib.pyplot as plt

x_values=list(range(1,1001))
y_values=[x**2 for x in x_values]

#plt.scatter(x_values,y_values,s=10)
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolors='none',s=10)
plt.axis([0,1100,0,1100000])
plt.show()

在这里插入图片描述

例3

import matplotlib.pyplot as plt

x=list(range(0,5001))
y=[value**3 for value in x]

plt.scatter(x,y,c=y,cmap=plt.cm.Blues,edgecolors='none',s=2)
plt.title("sj ci fh",fontsize=20)
plt.xlabel("x")
plt.ylabel("x^3")
plt.axis([0,5000,0,5000*5000*5000])
plt.show()

在这里插入图片描述

盒图

import matplotlib.pyplot as plt

x=list(range(0,5001))

plt.boxplot(x,labels="x")
plt.title("盒图",fontproperties="SimHei")

在这里插入图片描述

发布了35 篇原创文章 · 获赞 8 · 访问量 1753

猜你喜欢

转载自blog.csdn.net/qq_40677317/article/details/105440544