数据可视化技术 | matplotlib/pyechart

import pandas as pd
df = pd.read_csv(r"/home/ubuntu/Code/gdp.csv",encoding='utf-8')
df1 = df.loc[df['province']=='北京市']
df2 = df.loc[df['province']=='上海市']
df3 = df.loc[df['province']=='广东省']
df4 = df.loc[df['province']=='广西']
df1 = list(df1.values)[0]
df1 = df1[1:].tolist()
df2 = list(df2.values)[0]
df2 = df2[1:].tolist()
df3 = list(df3.values)[0]
df3 = df3[1:].tolist()
df4 = list(df4.values)[0]
df4 = df4[1:].tolist()
year = df.loc[1997:2017]
year = list(year)[1:]
for i in range(len(year)):  
    year[i] = str(year[i]).replace('y','')

#三线折线图
import matplotlib.pyplot as plt
plt.plot(year,df1,label="北京市")
plt.plot(year,df2,label="上海市")
plt.plot(year,df3,label="广东省")
plt.legend()
plt.title('三省GPD')
plt.xlabel('年份')
plt.ylabel('GPD')
plt.show()

#两组数据的堆叠图
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(list(map(str,year)))
bar.add_yaxis('广东',df3,stack="stack1")
bar.add_yaxis('广西',df4,stack="stack1")
bar.render_notebook()

#散点图加二次方拟合曲线
import numpy as np
year = list(df['year'])
value = list(df['Value'])
plt.figure(2,figsize=(9,6))
plt.scatter(year , value , s=10,c='g',marker='o',alpha=0.5)   
poly = np.polyfit(year , value , deg = 3) #拟合曲线,多项式最大为3次方多项式系数
plt.plot(year, np.polyval(poly, year )) #拟合多项式求值
plt.show()

#拟合曲线pyechart
from pyecharts.charts import Scatter
scat = Scatter()
scat.add_xaxis(list(map(str,year)))   
scat.add_yaxis('失业率',value,label_opts=opts.LabelOpts(is_show=False))
line = Line()
line.set_global_opts(title_opts = opts.TitleOpts(title = '失业率变化拟合曲线')) 
line.add_xaxis(list(map(str,year)))    
line.add_yaxis('失业率',np.polyval(poly, year ),label_opts=opts.LabelOpts(is_show=False))
scat.overlap(line) #Overlap结合不同类型图表叠加
scat.render_notebook()

#环形饼图
import pandas as pd
df = pd.read_csv(r"/home/ubuntu/Code/gdp.csv",encoding='utf-8')
df1 = df[['province','2014y']]
df1 = df1.sort_values(by="2014y",ascending=False)[:10]
from pyecharts import options as opts
from pyecharts.charts import Pie
pie = Pie()
pie.add('',list(zip(df['province'],df1['2014y'])),radius=["30%","70%"])
pie.render_notebook()


#南丁格尔玫瑰图
import pandas as pd
df = pd.read_csv(r"/home/ubuntu/Code/gdp.csv",encoding='utf-8')
df1 = df.loc[df['province']=='广西']
df2 = df.loc[df['province']=='江苏省']
df1 = list(df1.values)[0]
gx = df1[1:].tolist()
df2 = list(df2.values)[0]
js = df2[1:].tolist()
year = df.loc[:]
year = list(year)[1:9]
for i in range(len(year)):  
    year[i] = str(year[i]).replace('y','')
pie_gx = Pie()
pie_gx.add('',list(zip(year,gx)),rosetype="area")
pie_gx.render_notebook()
pie_js = Pie()
pie_js.add('',list(zip(year,js)),rosetype="radius")
pie_js.render_notebook()

 


#堆叠面积图
import pandas as pd
df = pd.read_csv(r"/home/ubuntu/Code/gdp.csv",encoding='utf-8')
df1 = df.loc[df['province']=='北京市']
df2 = df.loc[df['province']=='上海市']
df3 = df.loc[df['province']=='广东省']

df1 = list(df1.values)[0]
df1 = df1[1:].tolist()
df2 = list(df2.values)[0]
df2 = df2[1:].tolist()
df3 = list(df3.values)[0]
df3 = df3[1:].tolist()

year = df.loc[1997:2017]
year = list(year)[1:]
for i in range(len(year)):  
    year[i] = str(year[i]).replace('y','')

from pyecharts.charts import Line
line = Line()
line.add_xaxis(year)
line.add_yaxis('北京',df1,is_symbol_show=False,stack='s1')
line.add_yaxis('上海',df2,is_symbol_show=False,stack='s1')
line.add_yaxis('广东',df3,is_symbol_show=False,stack='s1')
line.set_series_opts(label_opts=opts.LabelOpts(is_show=False),areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
line.render_notebook()


#散点矩阵图
pip install seaborn
pip install scikit-learn
import seaborn as sb
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
df = pd.DataFrame(iris.data, columns=['花萼长度','花萼宽度','花瓣长度','花瓣宽度'])
sb.pairplot(df,diag_kind="kde",kind="reg")

 


#折线图——时间轴
import pandas as pd
df = pd.read_csv(r"/home/ubuntu/Code/gdp.csv",encoding='utf-8')
gx = df[df['province']=='广西']
gx = list(gx.values)[0]
gx = gx[1:].tolist()
gx = gx[:10]
year = df.loc[1997:2017]
year = list(year)[1:11]
for i in range(len(year)):  
    year[i] = str(year[i]).replace('y','')
year.reverse()
gx.reverse()
from pyecharts.charts import Timeline
from pyecharts import options as opts
from pyecharts.charts import Line
tl = Timeline()
for i in year:
    line = Line()
    line.set_global_opts(title_opts=opts.TitleOpts(title='广西近10年gpd'))
    line.add_xaxis(year)
    line.add_yaxis('每年GPD总量',gx,label_opts=opts.LabelOpts(is_show=False))
    line.set_global_opts(title_opts=opts.TitleOpts("{}年数据".format(i)))
    tl.add(line,"{}年".format(i))
tl.add_schema(play_interval=1000,is_auto_play=True,is_loop_play=True,is_timeline_show=True)
tl.render_notebook()


#雷达图
import pandas as pd
df = {'金融学院':[5,6,8,6,7],
      '新闻传播学院':[9,6,5,7,6],
      '计算机学院':[4,8,9,8,7],
      '管理学院':[7,8,6,7,8],
      '人文教育学院':[8,7,6,7,6]}
df = pd.DataFrame(df)
df1 = list(df['金融学院'])
df2 = list(df['新闻传播学院'])
df3 = list(df['计算机学院'])
df4 = list(df['管理学院'])
df5 = list(df['人文教育学院'])
df1 = [list(map(int,df1))]#雷达图的数据必须是二维的
df2 = [list(map(int,df2))]
df3 = [list(map(int,df3))]
df4 = [list(map(int,df4))]
df5 = [list(map(int,df5))]
from pyecharts.charts import Radar
import pyecharts.options as opts
schema=[
    opts.RadarIndicatorItem(name="表达沟通",max_=10),
    opts.RadarIndicatorItem(name="团队合作",max_=10),
    opts.RadarIndicatorItem(name="分析信息",max_=10),
    opts.RadarIndicatorItem(name="创新思维",max_=10),
    opts.RadarIndicatorItem(name="批判性思维",max_=10)
       ]

rd = Radar()
rd.add_schema(schema)
rd.add("金融学院",df1,color="red")
rd.add("新闻传播学院",df2,color="yellow")
rd.add("计算机学院",df3,color="blue")
rd.add("管理学院",df4,color="green")
rd.add("人文教育学院",df5,color="orange")
rd.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
rd.render_notebook()


#map地图
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.faker import Faker

city = ['南宁','柳州市','桂林市','贵港市','梧州市']

map = Map()
map.add("城市",list(zip(city,Faker.values())),"广西")
map.set_global_opts(visualmap_opts=opts.VisualMapOpts(
      type_='color',is_piecewise=True,min_=min(values),max_=max(values)))
map.render_notebook()

#Geo地图
from pyecharts.charts import Geo
from pyecharts import options as opts
from pyecharts.faker import Faker
geo = Geo()
geo.add_schema(maptype="广西")
geo.add("数目",list(zip(city,Faker.values())),
       type_="effectScatter")
geo.render_notebook()

#箱形图
from pyecharts.charts import Boxplot
a1 = [[90,65,84,91,76,85,81,93],[86,75,87,90,66,85,61,90]]
a2 = [[70,86,90,76,86,56,89,90],[98,76,87,78,79,67,87,98]]
a3 = [[87,67,89,90,97,98,78,88],[78,98,67,89,96,78,78,67]]
bp = Boxplot()
bp.add_xaxis(['1班','2班'])
bp.add_yaxis('科目1',bp.prepare_data(a1))
bp.add_yaxis('科目2',bp.prepare_data(a2))
bp.add_yaxis('科目3',bp.prepare_data(a3))
bp.render_notebook()

#全国疫情图
import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.faker import Faker
data = pd.read_csv(r"/home/ubuntu/Code/yq.csv",encoding='gbk')
city = list(data['地区'])
value = list(data['确认人数'])
map = Map()
map.add("全国疫情图",list(zip(city,value)),"china")
map.set_global_opts(visualmap_opts=opts.VisualMapOpts(
      type_='color',is_piecewise=True,min_=min(value),max_=max(value)))
map.render_notebook()

#河南省疫情分布
import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.faker import Faker
data = pd.read_csv(r"/home/ubuntu/Code/hn.csv",encoding='gbk')
city = list(data['城市'])
value = list(data['确认人数'])
map = Map()
map.add("河南省疫情图",list(zip(city,value)),"河南")
map.set_global_opts(visualmap_opts=opts.VisualMapOpts(
      type_='color',is_piecewise=True,min_=min(value),max_=max(value)))
map.render_notebook()


#分布直方图
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['SimHei']
plt.hist(df['Age'],bins=10,color='c',edgecolor='k',label='age')
plt.legend()
plt.show()

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值