matplotlib简单四图----条形图,点阵图,盒型图,箱形图

来源:互联网 发布:centos安装php两个环境 编辑:程序博客网 时间:2024/06/05 23:04
# -----------------------# __Author : tyran# __Date : 17-12-11# -----------------------import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport osdata_file_name = 'fandango_scores.csv'data_file_path = os.path.join(os.getcwd(), 'Datas', data_file_name)# 读取数据data = pd.read_csv(filepath_or_buffer=data_file_path)"""第一个图开始,条形图"""# 查看的列cols_ax1 = ['FILM', 'RottenTomatoes', 'RottenTomatoes_User', 'Metacritic']# 获取符合cols_ax1的四列数据score_view = data[cols_ax1]# 提取第一行数据的指定列film_score = score_view.ix[0, cols_ax1[1:]]# print(film_score)# 图表上每一列距离原点的距离position = np.arange(3) + 0.5# 设置画布尺寸fig = plt.figure(figsize=[6, 8])# 设置排列位置ax_bar = fig.add_subplot(2, 2, 1)# 设置数据bar_items = ax_bar.bar(position, film_score, 0.3, color='r')# 给每一个柱子打上值for item in bar_items:    height = item.get_height()    ax_bar.text(item.get_x() + item.get_width() / 2,                1.05 * height, height,                ha='center', va='bottom')ax_bar.set_xticklabels(score_view[cols_ax1[0]], rotation=15)ax_bar.set_xticks(position)"""第二个图开始,点阵图"""cols_scatter = ['RottenTomatoes', 'RottenTomatoes_User']scatter_data = data[cols_scatter]s_data1, s_data2 = scatter_data['RottenTomatoes'], scatter_data['RottenTomatoes_User']ax_scatter = fig.add_subplot(2, 2, 2)ax_scatter.scatter(s_data1, s_data2)ax_scatter.set_xlabel(s_data1.name)ax_scatter.set_ylabel(s_data2.name)"""第三个图,柱形图 数据源是Fandango_Ratingvalue和IMDB"""cols_tmp = ['Fandango_Ratingvalue', 'IMDB']# 这里就发现pandas很方便的地方了,可以通过value_counts,把Series按照值和值的出现次数重新组成Series# 索引就是数值,值就是出现次数# sort_index是让他按照索引排序fandango_data, imdb_data = data[cols_tmp[0]].value_counts().sort_index(), \                           data[cols_tmp[1]].value_counts().sort_index()# print(fandango_data.max())# print(imdb_data.max())ax_hist = fig.add_subplot(2, 2, 3)ax_hist.set_xticks(range(0, 17, 1))# ec是颜色  ls是样式  lw是宽度  bins是把数据分组ax_hist.hist(fandango_data, bins=10, color='g', ec='black', ls='--', label=fandango_data.name)ax_hist.hist(imdb_data, bins=20, color='y', ec='black', ls='--', label=imdb_data.name)# 显示labelplt.legend(loc='best')"""第四个图,盒形图"""# 先拿数据box_cols = ['RT_norm', 'RT_user_norm']ax_box = fig.add_subplot(2, 2, 4)print(data[box_cols].columns)box = ax_box.boxplot(data[box_cols].values, labels=data[box_cols].columns,                     showmeans=True, )plt.show()

原创粉丝点击