Usar las ticks en matplotlib

seaborn

Las ticks en Matplotlib, son los marcadores que indican los puntos de datos en los ejes.

Normalmente  en Matplotlib, los  localizadores y formateadores predeterminados de  los ticks, están diseñados para ser suficientes en la mayor parte de los casos comunes, sin embargo la posición y las etiquetas de las ticks , se pueden manejar explícitamente para adaptarlos a nuestros requisitos.

Las funciónes xticks() y yticks(),  toma un objeto de lista como argumento y los elementos de la lista indican las posiciones de la acción correspondiente donde se mostrarán los ticks.

ax.set_xticks ([3,6,9,12,15])

En este caso, el método marcará los puntos de datos, en aquellas posiciones dadas con ticks.

Si lo que deseas en manejar los grados, y sus etiquetas, se pueden hacer mediante las funciones set_xlabels() y set_ylabels() respectivamente.

ax.set_xlabels ([«tres», «seis», «nueve», «doce», «quince»])

Esto mostrará las etiquetas de texto debajo de los marcadores en el eje x.

Veamos un ejemplo completo

import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*3, 0.05)
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # eje principal
y = np.sin(x)
ax.plot(x, y)
ax.set_xlabel(‘angle’)
ax.set_title('sine')
ax.set_xticks([0,3,9,12])
ax.set_xticklabels(['cero','tres','nueve','doce'])
ax.set_yticks([-1,0,1])
plt.show()

Quién va en busca de montañas no puede detenerse a recoger las piedras del camino.

J. Martí

Hacer override del update_at con save

laravel

El método save(), acepta parámetros, ello da la capacidad para decirle que ignore el la asignación que hace update_at por defecto, tomando la fecha y momento actual, haciendo esto, lo cual nos permite hacer override del update_at con save(), sin mayores problemas:

$product = Product::find($id);	
$product->updated_at = '2019-01-01 10:00:00';
$product->save(['timestamps' => false]);

Y listo, esto es todo.

Otros artículos sobre Laravel

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana hombres……

Acceder a archivos o directorios con espacios en el nombre en Mac.

logo mac

Puede ser que necesitemos a menudo acceder a archivos o directorios con espacios en el nombre en Mac; acá les explico como hacerlo.

Al intentar acceder a un archivo en Mac de la manera habitual,  que tiene espacios en el nombre solemos recibir este error:

cd mi archivo
no such file or directory 

Existen al menos  tres soluciones para ello.

La primera es empleando el símbolo de escape

Esta vía  es más compleja. Lo que debemos hacer para acceder a un directorio con espacio entre el nombre,  es utilizar  el símbolo \  seguido de un espacio.

Si tuviéramos, por ejemplo  un directorio llamado mi directorio

Seria algo así como:

cd mi\ directorio/

La segunda opción es muy sencilla, basta con encerrar entre comillas dobles, el nombre del archivo tal y como está, o sea así:

cd  "mi directorio"

Y la tercera es acudir al autocompletado, para lo cual emplearemos Tab y autocompletar el nombre del archivo o el directorio.

Como siempre, espero que sirva de ayuda a alguien.

Muchas gracias.

Porque la vida es eso sembrar, sembrar, sembrar

J. A. Buesa

El uso de when

laravel

When() es una de los métodos con los que Laravel, sorprende a los que comienzan. El uso de when, es un recurso al que recurro cada vez que puedo, por la potencia que aporta, ya que permite crear un código más reusable.    

Veamos por ejemplo que si queremos introducir una condicional del tipo if else,  en un código podemos escribir algo asi enlazando ifs:

En el primer caso estamos diciendo algo como esto: Si filtramos lo que trae el request, por la columna likes, el valor de la variable query acogerá,    aquellos registros  en que likes, sea mayor que el valor de request donde likes_amount sea 0

if (request('filter_by') == 'likes') {
    $query->where('likes', '>', request('likes_amount', 0));
}
if (request('filter_by') == 'date') {
    $query->orderBy('created_at', request('ordering_rule', 'desc'));
}

Leer otros artículos sobre Laravel

Aquí estamos enlazando dos condiciones, que consideran el valor de unos campos para decidir que hacer.
Si usaramos when lo escribiríamos asi:

$query = Author::query();
$query->when(request('filter_by') == 'likes', function ($q) {
    return $q->where('likes', '>', request('likes_amount', 0));
});

$query->when(request('filter_by') == 'date', function ($q) {
    return $q->orderBy('created_at', request('ordering_rule', 'desc'));
});

Y lo que estamos diciendo es que la variable query, aplicará al modelo Author el método query, y que cuando el valor ejecute el filter_by a la columna likes dentro del metodo request, la función anónima se le pasara como parámetro una variable $q cuyo valor seran aquellos registros donde likes sea mayor que la likes_amount igual 0

Como vemos $q es una variable comodin que soporta el peso de la función, pues su valor variara en función del resultado.

$query = Producto::query();
$query->when(request('marca', false), function ($q, $marca) { 
    return $q->where('marcas_id', $marca);
});
$store = $query->get();

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana hombres……

Buenas prácticas para desarrollar en Laravel

laravel

Después de un tiempo desarrollando en este framework y recuperando opiniones de otros y mi propia experiencia, aquí dejo algunos de las que considero buenas prácticas de programación en Laravel

  1. Leer la documentación de Laravel, es sencilla y clara y brinda mucha información que necesitaras. Usarla como tutorial siempre a mano puede ser de gran ayuda.  
  2. Utilizar la estructura que Laravel ofrece para organizar el código por carpetas, con el enfoque que Laravel ofrece.
  3. Aprende y utiliza bien el sistema de autenticación de Laravel.
  4. Cumplir las políticas y salidas de Laravel.
  5. Mantener y los controladores y comandos ligeros. Es preferible transferir la mayor parte de la lógica a las clases, los modelos o las políticas o puertas de salida y enlace.
  6. Utilice los patrones  de migración y herramientas de Eloquent en vez de usar directamente  SQL.
  7. Usar los traits, para compartir la lógica y el comportamiento de los modelos.
  8. Aprovechar las ventajas de la metodología de frontend, basada en componentes de javascript, en vez de abusar del uso de Blade, Laravel esta preparado para integrarse a Vue, React, incluso  Angular.
  9. Explote al máximo las  prácticas REST en sus controladores y use tantos controladores como necesite, tambien aproveche a los controladores de acción única :__invoke()
  10. Establezca principios coherentes para obtener las  respuestas de las solicitudes, que ofrece Laravel, como la API JSON y use UUID, cuando pueda.
  11. Cree componentes, lo que facilitara, la estructura de su código, y su consumo, por la aplicación.
  12. Utilice comandos para tareas manuales, incluso para aquellas que algunas que pueden ser programadas, ya que pueden servirle para aliviar la carga de su aplicación.
  13. Resuelva el problema n+1, siguiendo la documentación de ayuda, ya que Eloquent, no tiene filtro para limitar  las consultas sql, por tanto hay que prestar atención  a la cargas del tipo lazy y eager.
  14. Aprender y usar los comandos de Artisan y sus utilidades.
  15. Oculte la estructura de la base de datos a través de objetos de respuesta
  16. Laravel permite desarrollar fachadas propias, el desconocimiento a veces invita a crearlas. No haga abuso de ellas, si puede implementar el uso de los métodos de una fachada ya predefinida por Laravel.
  17. Use paquetes de terceros con moderación y solo aquellos que estén bien mantenidos.
  18. Haga pruebas, escriba pruebas para todo cuanto desarrolle.
  19. Comente  el código de manera explicita.
  20. Documéntese, estudie. Una buena referencia son los sitios de Laracon en Youtube, los foros de los foros en el sitio de Jeffrey Way, Laracasts.com,  los foros de Vuejs.org , el foro de  Adam Wathan para Laravel, Vue, Tailwind y  el de Wes Bos para Javascript. Pueden serle útiles. Algunos serán de pago, pero pueden valer la pena.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Error _io.TextIOWrapper

python error

Hablemos del mensaje de error _io.TextIOWrapper, que suele aparecer cuando intentamos imprimir un determinado archivo en Python.

Realmente aunque lo consideramos un error no lo es, sino que es mas bien un mensaje que nos indica que estamos intentando imprimir algo que no es correcto.

Veamos un ejemplo de como debería estar planteado nuestro código:

def  imprimir():
    #Abrimos el archive para imprimir.txt.
    nuevo_file = open('imprimir.txt', 'r')

    #lo leemos
    contenido = nuevo_file.read()

    #Imprimimos los datos dentro del objeto contenido
    print(contenido)

Revisa bien los elementos del código y recuerda que en Python todo, son objetos a los cuales les vamos aplicando funciones, cuyo tipo no necesita ser definido de antemano y que pueden variar su contenido.

Espero modestamente, que este post, sirva de ayuda  a alguien.

La turba enardecida se convierte en manada, y la manada mata.

Y.

Translate »