使用matplotlib.pyplot,pyecharts和seaborn画过的图

一、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#像素
plt.rcParams['savefig.dpi'] = 150 #图片像素
plt.rcParams['figure.dpi'] = 100 #分辨率
#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.style.use(['ggplot','bmh'])
plt.figure(figsize=(1,5))#设置画布的尺寸
# 是否共享x轴或者y轴,就是说如果为真,就共享同一个轴,否则就不共享,默认是都共享,即都为True
# plt.figure(figsize=(5,10))#设置画布的尺寸
g = sns.FacetGrid(df_222, col="商品代号",sharex=False, sharey=True,height=3,col_wrap=15)# 都共享
g.map(plt.plot, "所属季度", "销售额(万元)", alpha=1,color='red')
# plt.yticks(np.arange(0,2000,300),fontsize=10)
# plt.xticks(fontsize=10)
# plt.show()#显示图像
plt.savefig('C:/Users/hp/Desktop/任务6.png')

在这里插入图片描述

二、

1
2
3
4
5
6
7
8
9
10
11
12
13
from pyecharts.charts import Bar
#导入设置系列配置和全局配置,下面会说到用法
from pyecharts import options as opts
#前五进行区别显示
x_data = df5['英雄名字'].tolist()
y_data = df5['count'].tolist()
bar = Bar()
bar.add_xaxis(x_data)
bar.add_yaxis('',y_data)
# bar.add('',x_data,y_data)
# bar.render('C:/Users/hp/Desktop/被选用次数最多的五个英雄.html')
bar.load_javascript()
bar.render_notebook()

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import matplotlib.pyplot as plt
import numpy as np

#前五进行区别显示
x_data = df5['英雄名字'].tolist()
y_data = df5['count'].tolist()
# print(x_data)

#数据可视化
#像素
plt.rcParams['savefig.dpi'] = 600 #图片像素
plt.rcParams['figure.dpi'] = 500 #分辨率
#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(12,6))#设置画布的尺寸
plt.title('被选用次数最多的五个英雄【柱状图】',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'英雄',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'被选用次数',fontsize=14)#设置y轴,并设定字号大小
 
#color:颜色,linewidth:线宽,linestyle:线条类型,label:图例,marker:数据点的类型
plt.bar(x_data,y_data,color="deepskyblue",linewidth=0.8)
plt.xticks(np.arange(5),x_data ,rotation=60,fontsize=20)#设置商品种类标签显示格式
plt.yticks(np.arange(0,2500,300),fontsize=14)
#前五为红色
n = 0
for x,y in enumerate(y_data):
    if n<5:
        plt.text(x, y, '%.0f' %y+'次' ,ha='center',va= 'bottom',fontsize=10,color="red")#设置数值标签的格式
    else:
        plt.text(x, y, '%.0f' %y ,ha='center',va= 'bottom',fontsize=10,color="black")#设置数值标签的格式
    n+=1
plt.savefig('C:/Users/hp/Desktop/被选用次数最多的五个英雄.png')
plt.show()#显示图像

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#对局结果

#统计
df_jg = df.groupby('对局结果')['对局结果'].agg(['count']).reset_index()
df_jg

# 可视化
#数据可视化
#像素
plt.rcParams['savefig.dpi'] = 600 #图片像素
plt.rcParams['figure.dpi'] = 500 #分辨率
#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 创建画布
plt.figure(figsize=(1.2,1))#设置画布的尺寸
labels = df_jg['对局结果'] #定义标签
sizes = df_jg['count'] #每块值
colors = ['pink','lightblue'] #每块颜色定义
explode = (0,0.03) #将某一块分割出来,值越大分割出的间隙越大
patches,text1,text2 = plt.pie(sizes,
                      explode=explode,
                      labels=labels,
                      colors=colors,
                      labeldistance = 1.2,#图例距圆心半径倍距离
                      autopct = '%3.2f%%', #数值保留固定小数位
                      shadow = False, #无阴影设置
                      startangle =90, #逆时针起始角度设置
                      pctdistance = 0.6) #数值距圆心半径倍数距离
#patches饼图的返回值,texts1饼图外label的文本,texts2饼图内部文本
for t in text1:
    t.set_size(5)
for t in text2:
    t.set_size(5)
# x,y轴刻度设置一致,保证饼图为圆形
plt.title('所有游戏对局输赢占比',fontsize=5,y = -0.1)
plt.show()

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#  载入 绘图pyplot模块,假定为 plt
import matplotlib.pyplot as plt
import numpy as np

#一张图
plt.style.use(['ggplot','seaborn'])#设置样式
plt.figure(figsize=(10,5),dpi=100) # 创建绘图图形对象figure,参数figsize决定尺寸,dpi为分辨率
#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(-np.pi, np.pi, 256, endpoint=True) #创建等差一维数组
# print(x)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x,y1,color='b',linewidth=2.0,linestyle="-",label = "sinx")
plt.plot(x,y2,color='r',linewidth=2.0,linestyle="-",label = "cosx")
plt.legend(loc=0,ncol=2,fontsize = '15')#图例及位置: 1右上角,2 左上角 loc函数可不写 0为最优 ncol为标签有几列,此处若是不写plt.legend,则不会显示标签
plt.title('sinx,cosx图')
plt.show
plt.savefig('C:/Users/hp/Desktop/正余弦.png')

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#两张图
plt.figure(figsize=(10,5),dpi=150,facecolor="gray")
plt.style.use('bmh')#将背景颜色改为 seaborn
ax1 = plt.subplot(1,2,1)
plt.title("sinx",fontsize=18)
# plt.xlim(-np.pi,np.pi)设置x数据的范围
plt.plot(x,y1,'deepskyblue',label = "sinx")
plt.xticks([-np.pi,-np.pi / 2,0, np.pi / 2, np.pi],
          [r"$-\pi$",r"$-\frac{\pi}{2}$","0", r"$\frac{\pi}{2}$", r"$\pi$"])

ax2 = plt.subplot(1,2,2)
plt.title("cosx",fontsize=18)
plt.plot(x,y2,'darkseagreen',label = "cosx")
#x轴的数据
plt.xticks([-np.pi,-np.pi / 2,0, np.pi / 2, np.pi],
          [r"$-\pi$",r"$-\frac{\pi}{2}$","0", r"$\frac{\pi}{2}$", r"$\pi$"])
plt.show
plt.savefig('C:/Users/hp/Desktop/正余弦2.png')

在这里插入图片描述

folium

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from pyecharts import options as opts
from pyecharts.charts import Map
data = [('湖北', 9074),('浙江', 661),('广东', 632),('河南', 493),('湖南', 463),
    ('安徽', 340),('江西', 333),('重庆', 275),('江苏', 236),('四川', 231),
    ('山东', 230),('北京', 191),('上海', 182),('福建', 159),('陕西', 116),
    ('广西', 111),('云南', 105),('河北', 104),('黑龙江', 95),('辽宁', 69),
    ('海南', 64),('新疆', 21),('内蒙古', 21),('宁夏', 28),('青海', 11),('甘肃', 40),('西藏', 1),
    ('贵州', 38),('山西', 56),('吉林', 23),('台湾', 10),('天津', 48),('香港', 14),('澳门', 8)]
def map_china() -> Map:
  c = (
    Map()
    .add(series_name="确诊病例", data_pair=data, maptype="china",zoom = 1,center=[105,38])
    .set_global_opts(
      title_opts=opts.TitleOpts(title="疫情地图"),
      visualmap_opts=opts.VisualMapOpts(max_=9999,is_piecewise=True,
              pieces=[{<!-- -->"max": 9, "min": 0, "label": "0-9","color":"#FFE4E1"},
                  {<!-- -->"max": 99, "min": 10, "label": "10-99","color":"#FF7F50"},
                  {<!-- -->"max": 499, "min": 100, "label": "100-499","color":"#F08080"},
                  {<!-- -->"max": 999, "min": 500, "label": "500-999","color":"#CD5C5C"},
                  {<!-- -->"max": 9999, "min": 1000, "label": ">=1000", "color":"#8B0000"}]
                       )
    )
  )
  return c
 
d_map = map_china()
d_map.render_notebook()

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
#,encoding='ISO-8859-1'
df = pd.read_csv(r"F:\China-2019.csv",header=0)
# df
#Male的数据
data11= (df['M']).tolist()
data1 = (-df['M']).tolist()
# data1.reverse()
#Female的数据
data2 = (df['F']).tolist()
# data2.reverse()
#总人数
data_All = sum(data11)+sum(data2)
#百分比
array11 =np.array(data11)/data_All*100#Male 正的
array1 =np.array(data1)/data_All*100#Male 负的
array2 =np.array(data2)/data_All*100#Female

data_1 = array1.tolist()
data_1.reverse()
data_2 = array2.tolist()
data_2.reverse()
# print(data_1)
# print(data_2)
#绘制数据标签
plt.figure(figsize=(5,5),dpi=150) # 创建绘图图形对象figure,参数figsize决定尺寸,dpi为分辨率
bar_plot = sns.barplot(y = df['年龄段'], x = array1, color = "cornflowerblue", data = df,order = orders,label="男                  ")
bar_plot = sns.barplot(y = df['年龄段'], x = array2, color = "pink", data = df,order = orders,label="女")
for x,y in enumerate(data_1):
    plt.text(y-1.2,x, '%.2f' %y+'%' ,ha='center',va= 'center',fontsize=8)#设置数值标签的格式
for x,y in enumerate(data_2):
    plt.text(y+1,x, '%.2f' %y+'%' ,ha='center',va= 'center',fontsize=8)#设置数值标签的格式
plt.xticks(np.arange(-12,13,1),["12%","11%","10%","9%","8%","7%","6%","5%","4%","3%","2%","1%",
                                "0%","1%","2%","3%","4%","5%","6%","7%","8%","9%","10%","11%","12%"],rotation=60,fontsize=9)#设置商品种类标签显示格式
# plt.yticks(np.arange(-10,10,1),fontsize=20)
bar_plot.set(xlabel="人口占比(%)", ylabel="年龄层", title = "中国人口年龄结构金字塔")
legend = plt.legend(loc="upper center",ncol=2,fontsize = '12',frameon=False)
# frame = legend.get_frame()
# frame.set_alpha(0)
# frame.set_facecolor('none') # 设置图例legend背景透明
plt.show()

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#可视化
#list1 = df2['经营利润1'].tolist()
#print(list1)
import matplotlib.pyplot as plt
import numpy as np
#大小
# figsize = 11,7
# figure, ax = plt.subplots(figsize=figsize)
plt.figure(figsize=(3,2))#设置画布的尺寸
#数据类型判断
x_data = df_3['销售点类型'].tolist()
print(type(x_data))
print(type(df_3['销售点类型']))
print(df_3['销售点类型'].dtype)
y_data = df_3['销售额(万元)'].tolist()
plt.xlabel('销售点类型')
plt.ylabel('销售额(万元)')
#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#像素
plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
plt.title('销售点销售额对比')
plt.bar(df_3['销售点类型'], df_3['销售额(万元)'],alpha=0.5,width=0.7,color='yellow', edgecolor='red',lw=1)
# 如果想控制y轴数值间隔:
plt.yticks(np.arange(0,6000,800),fontsize=7)
# 为每个条形图添加数值标签
for x,y in enumerate(df_3['销售额(万元)']):
    plt.text(x, y, '%.2f' %y+'万' ,ha='center',va= 'bottom',fontsize=8)#设置数值标签的格式
plt.savefig('C:/Users/hp/Desktop/销售点销售额对比.png')
plt.show()

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#CBD店
CBD = df_33[df_33['销售点类型']=='CBD店']
CBD
y_data1 = list(CBD['销售额(万元)'])
CStore = df_33[df_33['销售点类型']=='社区店']
y_data2 = list(CStore['销售额(万元)'])
x_data = list(CBD['商品代号'])
#数据可视化
import numpy as np
plt.figure(figsize=(11,6))#设置画布的尺寸
plt.title('各类商品不同销售点的销售额对比',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'商品代号',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'销售额(万元)',fontsize=14)#设置y轴,并设定字号大小
 
#color:颜色,linewidth:线宽,linestyle:线条类型,label:图例,marker:数据点的类型
plt.plot(x_data,y_data1,color="deepskyblue",linewidth=0.8,linestyle='--',label='CBD店', marker='.')
plt.plot(x_data,y_data2,color="darkseagreen",linewidth=0.8,linestyle='--',label='社区店', marker='.')
plt.xticks(np.arange(31),x_data ,rotation=60)#设置商品种类标签显示格式
plt.yticks(np.arange(0,3500,500),fontsize=7)
#像素
plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
i=0
a=0
# plt.plot(data['时间'],data['收入_Jolin'],color="goldenrod",linewidth=1.5,linestyle='-',label='Jolon income', marker='*')
# for x,y in enumerate(y_data1):
#     plt.text(x, y, '%.1f' %y ,ha='center',va= 'bottom',fontsize=6)#设置数值标签的格式
# for x,y in enumerate(y_data2):
#     plt.text(x, y, '%.1f' %y ,ha='center',va= 'bottom',fontsize=6)#设置数值标签的格式
for x,y in enumerate(y_data1):
    if  y>y_data2[a]:
        plt.text(x, y+30, '%.1f' %y ,ha='center',va= 'bottom',fontsize=6)#设置数值标签的格式
    else:
        plt.text(x, y-100, '%.1f' %y ,ha='center',va= 'bottom',fontsize=6)#设置数值标签的格式
    a=a+1
for x,y in enumerate(y_data2):
    if  y>y_data1[i]:
        plt.text(x, y+30, '%.1f' %y ,ha='center',va= 'bottom',fontsize=6)#设置数值标签的格式
    else:
        plt.text(x, y-100, '%.1f' %y ,ha='center',va= 'bottom',fontsize=6)#设置数值标签的格式
    i=i+1
plt.legend(loc=2)#图例展示位置,数字代表第几象限
plt.savefig('C:/Users/hp/Desktop/各类商品不同销售点的销售额对比.png')
plt.show()#显示图像
# 保存图片到本地

在这里插入图片描述