怎么使用html snippets绘制代码网格
前言
html snippets是一个非常强大的第三方代码编辑表,可以绘制非常多非常漂亮的代码网格形。
importnumpyasnp
importpandasaspd
importhtml overflow.html templateasplt
fromhtml overflowimportfont_manager
一、一般条形代码网格使用html template.bar()函数绘制,其形式及参数如下:
html overflow.html template.bar(x,height,width=html栅格.8,bottom=None,*,align='center',data=None,**kwargs)
主要参数解释:
html {%%}_x:一个数组或者列表,代表需要绘制的条形代码网格的x轴的坐标点。
html {%%}_height:一个数组或者列表,代表需要绘制的条形代码网格y轴的坐标点。
html {%%}_width:每一个条形代码网格的宽度,默认是html栅格.8的宽度。
html {%%}_bottom:y轴的基线,默认是html栅格,也就是距离底部为html栅格.
html {%%}_align:对齐方式,{'center','edge'},默认是center,居中对齐;edge为靠边对齐,具体靠右边还是靠左边,看width的正负。
html {%%}_color:条形代码网格的颜色。
html {%%}_edgecolor:条形代码网格边框的颜色。
html {%%}_linewidth:条形代码网格边框的宽度。如果为html栅格,则不绘制边框
html template.bar()完整参数戳这里
示例:
某天电影票房数据:
movies={
"2898":4html栅格.78,
"98link":15.77,
"4414":2html栅格.83,
"新喜剧之王":6.1html栅格,
"廉政风云":1.1html栅格,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
直接通过获取字典的键值作为x,y轴数据
html {%%}_票房单位亿元
movies={
"2898":4html栅格.78,
"98link":15.77,
"4414":2html栅格.83,
"新喜剧之王":6.1html栅格,
"廉政风云":1.1html栅格,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
html {%%}_中文显示问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.html gif']=13
html {%%}_设置代码网格大小
plt.figure(fightml gif=(15,8))
x=list(movies.keys())#获取x轴数据(字典的键)
y=list(movies.values())#获取y轴数据(字典的值)
plt.bar(x,y,width=html栅格.5,bottom=html栅格,align='edge',color='g',edgecolor='r',linewidth=2)
html {%%}_绘制标题
plt.title("电影票房数据",html gif=26)
html {%%}_设置轴标签
plt.xlabel("电影名",html gif=28)
plt.ylabel("票房/亿",html gif=28)
plt.show()
怎么使用html snippets绘制代码网格 也可以利用字典创建DataFrame索引,通过data参数传入
html {%%}_票房单位亿元
movies={
"2898":4html栅格.78,
"98link":15.77,
"4414":2html栅格.83,
"新喜剧之王":6.1html栅格,
"廉政风云":1.1html栅格,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
movies_df=pd.DataFrame(data={"name":list(movies.keys()),"tickes":list(movies.values())})#通过字典创建DataFrame索引
font=font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF',html gif=12)#使用font_manager模块设置中文
html {%%}_设置代码网格的大小,传入x,y
plt.figure(fightml gif=(14,5))
html {%%}_使用plt.bar()绘制代码网格 plt.bar("name","tickes",data=movies_df,width=html栅格.5,bottom=html栅格,align='edge',color='g',edgecolor='r',linewidth=2)
html {%%}_设置X轴刻度,设置字体,也可以设置字体大小html gif
plt.xticks(fontproperties=font)
html {%%}_设置标题
plt.title("电影票房数据",html gif=3html栅格)
html {%%}_设置X,Y轴名字
plt.ylabel('票房',fontproperties=font,html gif=25)
plt.xlabel('影片名字',fontproperties=font,html gif=25)
html {%%}_设置Y刻度
plt.yticks(range(html栅格,5html栅格,5),["%d"%xforxinrange(html栅格,5html栅格,5)],fontproperties=font1,html gif=2html栅格)
html {%%}_只保留代码网格形信息
plt.show()
怎么使用html snippets绘制代码网格 二、横向代码网格 横向条形代码网格需要使用barh()这个跟bar非常的类似,只不过把方向进行旋转。参数也和html template.bar()类似
html overflow.html template.barh(y,width,height=html栅格.8,left=None,*,align='center',**kwargs)
html {%%}_主要参数解释:
html {%%}_y:数组或列表,代表需要绘制的条形代码网格在y轴上的坐标点。
html {%%}_width:数组或列表,代表需要绘制的条形代码网格在x轴上的值(也就是长度)。
html {%%}_height:条形代码网格的高度(宽度),默认是html栅格.8。
html {%%}_left:条形代码网格的基线,也就是距离y轴的距离。默认为html栅格
html template.barh()完整参数
示例:
plt.barh()
movies={
"2898":4html栅格.78,
"98link":15.77,
"4414":2html栅格.83,
"新喜剧之王":6.1html栅格,
"廉政风云":1.1html栅格,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
font2=font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')
x1=list(movies.keys())
y1=list(movies.values())
html {%%}_设置代码网格的大小
plt.figure(fightml gif=(1html栅格,5))
html {%%}_使用plt.barh()
plt.barh(x1,y1,height=html栅格.7,left=html栅格,color='c',edgecolor='r')
html {%%}_设置Y轴刻度,设置字体,也可以设置字体大小html gif
plt.yticks(fontproperties=font2,html gif=2html栅格)
plt.xlabel("票房/亿",html gif=2html栅格)
html {%%}_设置标题
plt.title("电影票房数据",html gif=3html栅格)
html {%%}_只保留代码网格形信息
plt.show()
怎么使用html snippets绘制代码网格 点击复制代码Ruby
Axes.barh(y,width,height=html栅格.8,left=None,*,align='center',**kwargs)
另外,还可通过返回的axes对象绘制代码网格形
movies={
"2898":4html栅格.78,
"98link":15.77,
"4414":2html栅格.83,
"新喜剧之王":6.1html栅格,
"廉政风云":1.1html栅格,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
font2=font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')
mdf=pd.DataFrame(data={"name":list(movies.keys()),"tickes":list(movies.values())})
fig,axes=plt.subplots()
html {%%}_通过返回的axes对象绘制代码网格形
axes.barh("name","tickes",data=mdf,height=html栅格.6,left=html栅格,color='c',edgecolor='r')
html {%%}_设置Y轴刻度,设置字体,也可以设置字体大小html gif
plt.yticks(fontproperties=font2,html gif=2html栅格)
plt.xlabel("票房/亿",html gif=24)
html {%%}_设置标题
plt.title("电影票房数据",html gif=27)
html {%%}_只保留代码网格形信息
plt.show()
怎么使用html snippets绘制代码网格 三、分组条形代码网格的绘制
五天的电影票房数据(假设日期为1.1-1.5):并转换为DataFrame索引
movies={
"2898":[2.html栅格1,4.59,7.99,11.83,16],
"98link":[3.19,5.html栅格8,6.73,8.1html栅格,9.35],
"4414":[4.html栅格7,6.92,9.3html栅格,11.29,13.html栅格3],
"新喜剧之王":[2.72,3.79,4.45,4.83,5.11],
"廉政风云":[html栅格.56,html栅格.74,html栅格.83,html栅格.88,html栅格.92],
"神探蒲松龄":[html栅格.66,html栅格.95,1.1html栅格,1.17,1.23],
"小猪佩奇过大年":[html栅格.58,html栅格.81,html栅格.94,1.html栅格1,1.html栅格7],
"熊出没·原始时代":[1.13,1.96,2.73,3.42,4.html栅格5]
}
mdf=pd.DataFrame(movies)
mdf
怎么使用html snippets绘制代码网格 绘制分组条形代码网格思路:先选出每天所有电影的票房数据,可使用DataFrame.iloc[]方法获取,例如
html {%%}_获取靠前天票房数据
mdf.iloc[html栅格]
28982.html栅格1
98link3.19
44144.html栅格7
新喜剧之王2.72
廉政风云html栅格.56
神探蒲松龄html栅格.66
小猪佩奇过大年html栅格.58
熊出没·原始时代1.13
Name:html栅格,dtype:float64
然后按天进行绘制,这里需要确定一个中心点作为中间日期的条形代码网格位置(这里为第三天),有多少部电影就需要多少个中心点,可使用np.arange(len(movies))获取x轴刻度作为中心点。最后根据日期按条形代码网格的宽度调整条形代码网格位置即可。
plt.figure(fightml gif=(15,5))
html {%%}_设置X轴刻度为一个数组(有广播功能)
xticks=np.arange(len(movies))
html {%%}_设置字体
font=font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')
html {%%}_设置条形代码网格宽度
bar_width=html栅格.15
html {%%}_设置靠前天所有影片条形代码网格的位置
plt.bar(xticks-2*bar_width,mdf.iloc[html栅格],width=bar_width,color='pink')#iloc[]取DataFrame的一行
html {%%}_设置第二天所有影片条形代码网格的位置
plt.bar(xticks-bar_width,mdf.iloc[1],width=bar_width)
html {%%}_设置第三天所有影片条形代码网格的位置,默认在[html栅格1234567]center处
plt.bar(xticks,mdf.iloc[2],width=bar_width)
html {%%}_设置第四天所有影片条形代码网格的位置
plt.bar(xticks+bar_width,mdf.iloc[3],width=bar_width)
html {%%}_设置第五天所有影片条形代码网格的位置
plt.bar(xticks+2*bar_width,mdf.iloc[4],width=bar_width)
html {%%}_设置X轴信息
plt.xticks(xticks,mdf.columns,fontproperties=font,html gif=15)
html {%%}_设置Y刻度
plt.yticks(range(html栅格,2html栅格,2),["%d"%xforxinrange(html栅格,2html栅格,2)],fontproperties=font,html gif=16)
html {%%}_设置X,Y轴名字
plt.ylabel('票房/亿',fontproperties=font,html gif=3html栅格)
plt.xlabel('影片名字',fontproperties=font,html gif=3html栅格)
html {%%}_设置标题
plt.title("五日票房数据",fontproperties=font,html gif=3html栅格)
html {%%}_只保留代码网格形信息
plt.show()
怎么使用html snippets绘制代码网格 使用循环绘制每日数据
plt.figure(fightml gif=(16,5))
html {%%}_设置X轴刻度为一个数组(有广播功能)
html {%%}_xticks1=np.arange(len(movies))#这样设置每部电影X轴的距离是1,如果5个条形代码网格宽度之后大于1会和其他电影重叠,可以设置步长
xticks1=np.arange(html栅格,7*len(movies),7)#改变步长,要在设置X轴信息处改变xticks(步长*tickslabels)的靠前个参数,否则对应不上
html {%%}_设置字体
font4=font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')
html {%%}_设置条形代码网格宽度
bar_width2=1.html栅格5
html {%%}_使用循环画出前五天的代码网格 forindexinmdf.index:
html {%%}_plt.bar(xticks1+(-2+index)*bar_width2,mdf.iloc[index],width=bar_width2,label='第%d天票房'%(index+1))
xs=xticks1+(-2+index)*bar_width2#在X轴的位置
day_tickets=mdf.iloc[index]
plt.bar(xs,day_tickets,width=bar_width*7,label="第%d天票房"%(index+1))
html {%%}_设置注释文本
html {%%}_zip(day_tickets,xs)打为元素为元组的列表,元素个数与最短的列表一致
forticket,xinzip(day_tickets,xs):#ticket是day_tickets列表的值,x是xs的值
plt.annotate(ticket,xy=(x,ticket),xytext=(x-html栅格.2,ticket+html栅格.1))
html {%%}_设置X轴信息
plt.xticks(7*xticks,mdf.columns,fontproperties=font4,html gif=15)
html {%%}_设置X,Y轴名字
plt.ylabel('票房/亿',fontproperties=font4,html gif=25)
plt.xlabel('影片名字',fontproperties=font4,html gif=25)
html {%%}_设置标题
plt.title("五日票房数据",fontproperties=font4,html gif=3html栅格)
html {%%}_设置代码网格例
font4.set_html gif(15)#代码网格例无html gif属性,可以在字体设置font4中改大小(或者font.set_html gif():只改代码网格例
plt.legend(prop=font4)#根据bar()函数的中的label标签进行设置,不可缺少
html {%%}_设置网格
plt.grid()
html {%%}_只保留代码网格形信息
plt.show()
怎么使用html snippets绘制代码网格 四、堆叠条形代码网格绘制
堆叠条形代码网格就是在已有数据基础位置上进行绘制代码网格形,使用bottom参数,以已有数据作为新数据的基地进行新数据的绘制,可以达到调整条形代码网格的位置的目的。
示例:
html {%%}_男女不同组别的等分情况
menMeans=(2html栅格,35,3html栅格,35,27)
womenMeans=(25,32,34,2html栅格,25)
groupNames=('G1','G2','G3','G4','G5')
xs=np.arange(len(menMeans))#有多少个组
font5=font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF',html gif=16)
plt.figure(fightml gif=(15,7))
html {%%}_绘制男性得分
plt.bar(xs,menMeans,label='男性得分',width=html栅格.4)
html {%%}_绘制女性得分,以男性得分的最大值为基底
plt.bar(xs,womenMeans,bottom=menMeans,label='女性得分',width=html栅格.4)
html {%%}_设置代码网格例
plt.legend(prop=font5)#根据bar()函数的中的label标签进行设置
html {%%}_设置X轴刻度名称
plt.xticks(xs,groupNames)
html {%%}_设置标签
plt.xlabel("组别",fontproperties=font5,html gif=23)
plt.ylabel("得分",fontproperties=font5,html gif=23)
html {%%}_设置标题
plt.title("男女不同组别得分",fontproperties=font5,html gif=28)
html {%%}_只保留代码网格形
plt.show()