1. Gráfico de dispersión
from matplotlib import pyplot as plt
from matplotlib import font_manager
y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
plt.figure(figsize=(20, 8), dpi=80)
my_font = font_manager.FontProperties(fname=r"G:\Python_Learning\untitled\test\simsun.ttc") # 调取中文字体
x_3 = range(1, 32)
x_10 = range(51, 82)
plt.scatter(x_3, y_3, label='3月份')
plt.scatter(x_10, y_10, label='10月份')
plt.legend(prop=my_font, loc="upper left")
_x = list(x_3) + list(x_10)
_xtick_labels = ["3月{}日".format(i) for i in x_3]
_xtick_labels += ["10月{}日".format(i - 50) for i in x_10]
plt.xticks(_x[::3], _xtick_labels[::3], fontproperties=my_font, rotation=45)
plt.xlabel("日期", fontproperties=my_font) # 贴轴标题
plt.ylabel("温度℃", fontproperties=my_font)
plt.title("北京2016年3,10月份白天的最高气温散点图", fontproperties=my_font)
plt.show()
2. Gráfico de barras
(1) Gráfico de barras general
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname=r"G:\Python_Learning\untitled\test\simsun.ttc") # 调取中文字体
plt.figure(figsize=(20, 8), dpi=80) # 调图表大小
a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:\n最后的骑士","摔跤吧!爸爸","加勒比海盗5:\n死无\
对证","金刚:骷髅岛","极限特工:\n终极回归","生化危机6:\n终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金\
刚狼3:\n殊死一战","蜘蛛侠:\n英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
_x = range(len(a))
_y = b
plt.bar(_x, _y, width=0.2, color='orange')
plt.xticks(_x, a, fontproperties=my_font, rotation=90)
plt.show()
(2) Gráfico de barras horizontales
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname=r"G:\Python_Learning\untitled\test\simsun.ttc") # 调取中文字体
plt.figure(figsize=(20, 8), dpi=80) # 调图表大小
a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]
b = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
plt.barh(range(len(a)), b, height=0.3, color='orange')
plt.yticks(range(len(a)), a, fontproperties=my_font)
plt.show()
(3) Aplicación de gráfico de barras
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname=r"G:\Python_Learning\untitled\test\simsun.ttc") # 调取中文字体
plt.figure(figsize=(20, 8), dpi=80) # 调图表大小
a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]
x_14 = list(range(len(a)))
x_15 = [i + 0.2 for i in x_14]
x_16 = [i + 0.2 for i in x_15]
plt.bar(range(len(a)), b_14, width=0.2, color='purple', label="9月14日")
plt.bar(x_15, b_15, width=0.2, color='yellow', label="9月15日")
plt.bar(x_16, b_16, width=0.2, color='blue', label="9月16日")
plt.legend(prop=my_font)
plt.ylabel("票房/万元", fontproperties=my_font)
plt.xticks(x_15, a, fontproperties=my_font)
plt.show()
(4) Pseudohistograma de gráfico de barras
Porque la función de código del histograma trata con datos no procesados. Pero si se requiere mostrar la forma de conectar histogramas, esto se puede hacer con gráficos de barras.
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname=r"G:\Python_Learning\untitled\test\simsun.ttc") # 调取中文字体
plt.figure(figsize=(20, 8), dpi=80) # 调图表大小
interval = [0,5,10,15,20,25,30,35,40,45,60,90]
width = [5,5,5,5,5,5,5,5,5,15,30,60]
quantity = [836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]
_x = [i-0.5 for i in range(len(quantity)+1)] # -0.5是挪移位置,+1是显示最后一个横坐标
plt.bar(range(len(quantity)), quantity, width=1)
plt.xticks(_x, interval+[150], fontproperties=my_font) # 显示最后一个横坐标
plt.grid(True, linestyle="-.", alpha=0.5) # 显示网络,透明度为0.5
plt.show()
3. Histograma
(1) Condiciones aplicables
Datos sin procesar.
(2) Ejemplo de histograma
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname=r"G:\Python_Learning\untitled\test\simsun.ttc") # 调取中文字体
plt.figure(figsize=(20, 8), dpi=80) # 调图表大小
a = [131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117, 86, 95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92,121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146, 133, 101, 131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111, 111, 133, 150]
bin_width = 3 # 设置组距为3,数字3以内为一组
num_bins = int((max(a)-min(a))/bin_width) # 组数量,在python绘图种要让它等于整数,不然绘图偏移
print(num_bins)
plt.hist(a, num_bins, density=True) # density 表示其为频率直方分布图
plt.xticks(list(range(min(a), max(a)+3))[::bin_width], rotation=45) # range后面取不到,所以加一个bin_width
plt.grid(True, linestyle="-.", alpha=0.5) # 显示网络,透明度为0.5
plt.show()
Cuatro, más recursos
https://plotly.com/python/
https://echarts.apache.org/examples/zh/index.html#chart-type-line